🚀 다형성에서 빠질 수 없는 개념 추상화는 어떠한 객체에 대한 공통 요소를 추출하는 과정 으로 배웠다. 그러나 구체적인 행위를 구현하는 것이 아닌 메소드의 이름만 명시하고 하위 클래스에서 그 행위를 구현하도록 JAVA는 약속했다. 이렇게 행위를 구현화 하는데 필요한 절차가 오버로딩 , 오버라이딩 이라고 하는 것이다. 🌠 오버라이딩 Ride : (말, 자동차 등에) 타다 오버라이딩에 대해서는 상속과 추상화를 배웠다면 익숙한 어노테이션 일것이다. 상위 클라스의 추상메소드를 하위 클라스에서 구체화하는 과정으로 이해하면 충분하다 생각한다. abstract class Animal { void sound() {} } class Dog extends Animal { @Override public void sound(..
서론 컴퓨터는 데이터를 복잡하게 암호화 하여 값을 저장하고 암호화된 데이터를 가져오는 과정에서 키(Key) 값을 통해 회수하게 된다. 암호화된 복잡한 데이터를 호출하기 위해 키값을 생성하여 테이블에 저장하게 되는데 이를 해싱(Hashing) 과정 이라고 하며 Hasing 는 크게 Hash-function , Hash-Table 요소로 구분할 수 있다. Hash-function 해시 함수에서 중요한 것은 고유한 인덱스 값을 설정하는 것이다. 해시함수 방식 제산법 제산(Division)법은 레코드키로 해시표의 크기보다 큰 수 중에서 가장 작은소수로 나눈 나머지를 홈 주소로 삼는 방식이다. H(Key) = Key % Prime_Number 제곱법 제곱법은 레코드키 값을 제곱한 후 그 중간 부분의 값을 홈주소로..
목차 내부클래스 내부 클래스의 종류 익명 클래스 내부클래스 내부 클래스안 하나의 클래스 내부에 선언된 또 다른 클래스를 의미한다. 이러한 내부 클래스는 외부 클래스에 대해 두 개의 클래스가 서로 긴밀한 관계를 맺고 있을 때 선언 가능하다. 외부 클래스 내부의 각각의 내부 클래스의 멤버들 간의 접근이 자유로우며 불필요한 클래스를 감춰서 코드 복잡성을 줄일 수 있다. 내부 클래스에서 외부 클래스의 멤버에 손쉽게 접근할 수 있다. 서로 관련 있는 클래스를 논리적으로 묶어서 표현함으로써, 코드의 캡슐화를 증가 외부에서는 내부 클래스에 접근할 수 없으므로, 코드의 복잡성을 줄일 수 있다. class OutterClass{ class InnerClass{ } } 내부 클래스의 종류 정적 클래스 인스턴스 클래스 지역..
👱♀상속를 공부하면 따라오는 것 객체 지향 프로그래밍(OOP)의 특성 중 하나인 상속은 상위 클라스의 기능을 하위 클라스 에서도 가능하도록 부여받는 것으로 확장성, 유연성, 재사용성의 기능을 높여준다. 상속을 공부한다면 추상화를 볼 수 있을 것이고 인터페이스를 공부하게 될 것이고 오버라이딩, 오버로딩 까지 같이 공부하게 된다. 나는 두 기초적인 지식에서 정리가 되지 않았고 이번 기회로 정리하고자 한다. 🚀 abstract 추상 클래스를 알기 전에 추상화에 대한 오해를 풀고 가자 ☄ 추상화 JAVA에서 추상화는 특별한 용어는 아니다. 그저 국어 표현에서 말하는 추상은 실체 간에 공통되는 특성을 추출한 것으로 정리되는 할 수 있는데 개발자가 어떤 객체의 공통되는 특성을 뽑아내어 하나의 공통 객체로 만들어 ..
🚀 OOP를 올바르계 설계해 나가는 원칙 OOP의 4대 특성 캡슐화, 상속, 추상화, 다형성은 객체지향 프로그래밍을 이어가는 동안 사용할 Tool 같은 역할이 된다. 도구가 있다면 용도에 맞게 사용해야하는데 요리를 하면 표준에 있듯이 OOP 세계에서도 원칙이라는 것이 존대한다. OOP를 기반으로 설계하는 방식을 OOD (Object Oriented Design)이라고 하며 설계 방법을 구체화 하여 정리한 원칙이 SOLID가 되는 것이다. 🌠 SOLID 원칙이 탄생한 것은 높은 응집도와 낮은 결합도 목표로 로버트 C.마틴이 확립한 개념이다. ☄ SRP(Single Responsibility Principle) : 단일 책임의 원칙 "어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다." 하나의 클래..
🚀 OOP를 올바르계 설계해 나가는 원칙 OOP의 4대 특성 캡슐화, 상속, 추상화, 다형성은 객체지향 프로그래밍을 이어가는 동안 사용할 Tool 같은 역할이 된다. 도구가 있다면 용도에 맞게 사용해야하는데 요리를 하면 표준에 있듯이 OOP 세계에서도 원칙이라는 것이 존대한다. OOP를 기반으로 설계하는 방식을 OOD (Object Oriented Design)이라고 하며 설계 방법을 구체화 하여 정리한 원칙이 SOLID가 되는 것이다. 🌠 SOLID 원칙이 탄생한 것은 높은 응집도와 낮은 결합도 목표로 로버트 C.마틴이 확립한 개념이다. ☄ OCP(Open Closed Principle) : 개방 폐쇄 원칙 SW 엔티티(클래스, 모듈, 함수)는 확장에 대해서는 열려있어야 하며 변경에 대해서는 닫혀있어야..
🚀 OOP를 올바르계 설계해 나가는 원칙 OOP의 4대 특성 캡슐화, 상속, 추상화, 다형성은 객체지향 프로그래밍을 이어가는 동안 사용할 Tool 같은 역할이 된다. 도구가 있다면 용도에 맞게 사용해야하는데 요리를 하면 표준에 있듯이 OOP 세계에서도 원칙이라는 것이 존대한다. OOP를 기반으로 설계하는 방식을 OOD (Object Oriented Design)이라고 하며 설계 방법을 구체화 하여 정리한 원칙이 SOLID가 되는 것이다. 🌠 SOLID 원칙이 탄생한 것은 높은 응집도와 낮은 결합도 목표로 로버트 C.마틴이 확립한 개념이다. ☄ DIP(Dependency Inversion Principle) : 의존 역전 원칙 자신보다 변하기 쉬운 것에 의존하지 마라 아래 그림에서는 자동차 클래스가 스노우..
🚀 OOP를 올바르계 설계해 나가는 원칙 OOP의 4대 특성 캡슐화, 상속, 추상화, 다형성은 객체지향 프로그래밍을 이어가는 동안 사용할 Tool 같은 역할이 된다. 도구가 있다면 용도에 맞게 사용해야하는데 요리를 하면 표준에 있듯이 OOP 세계에서도 원칙이라는 것이 존대한다. OOP를 기반으로 설계하는 방식을 OOD (Object Oriented Design)이라고 하며 설계 방법을 구체화 하여 정리한 원칙이 SOLID가 되는 것이다. 🌠 SOLID 원칙이 탄생한 것은 높은 응집도와 낮은 결합도 목표로 로버트 C.마틴이 확립한 개념이다. ☄ LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 서브 타입은 언제나 자신의 기반 타입으로 교체할 수 있어야한다. LSP원칙의 ..
🚀 OOP를 올바르계 설계해 나가는 원칙 OOP의 4대 특성 캡슐화, 상속, 추상화, 다형성은 객체지향 프로그래밍을 이어가는 동안 사용할 Tool 같은 역할이 된다. 도구가 있다면 용도에 맞게 사용해야하는데 요리를 하면 표준에 있듯이 OOP 세계에서도 원칙이라는 것이 존대한다. OOP를 기반으로 설계하는 방식을 OOD (Object Oriented Design)이라고 하며 설계 방법을 구체화 하여 정리한 원칙이 SOLID가 되는 것이다. 🌠 SOLID 원칙이 탄생한 것은 높은 응집도와 낮은 결합도 목표로 로버트 C.마틴이 확립한 개념이다. ☄ ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안 된다...
🚀 프로그램이 메모리를 사용하는 방식 하나의 프로그램이 실행될 때 프로그램이 메모리를 사용하는 방식이다. 기계어를 포함한 모든 프로그래밍이 언어의 공통된 메모리 사용방식이며 OOP에서는 데이터 저장 영역을 다시 3개의 영역으로 나누어 사용한다. 🌠 main() 메소드 : 메소드 스택 프레임 자바가 실행되면 JRE는 프로그램 내부의 main() 메소드의 유무를 확인하고 이어서 JVM이 역할을 이어 받아 전저리 과정을 이어간다. 프로그램이 실행되면 JVM은 실행에 필요한 패키지(ex. java.lang)를 Static 영역에 저장한다. 그리고 JVM은 개발자가 작성한 모든 클래스와 패키지 역시 Static영역에 저장한다. ☄ main() 메소드가 실행되기 전 JVM에서 수행하는 전처리 작업들 java.lan..
- Total
- Today
- Yesterday
- 그래프
- java
- 매트랩
- 스프링부트
- Algorithm
- 디자인패턴
- Solid
- 수학
- docker
- Matlab
- 알고리즘
- nginx
- Spring
- springboot
- JPA
- 면접
- 자바
- 자격증
- 프로그래머스
- kakao
- 릿코드
- spring-cloud
- 백준
- 스프링
- CS
- C언어
- OOP
- interview
- ajax
- security
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |