728x90 분류 전체보기302 [Spring] Factory-Method Pattern [Spring] Factory-Method Pattern 팩토리는 공장을 의미한다. 공장은 물건을 생산하는데 객체 지향에서 팩토리는 '객체'를 생성한다. 팩터리 메서드는 결국 객체를 생성하고 반환하는 메서드를 말한다. 여기에 패턴이 붙으면 하위 클래스에서 팩토리 메서드를 오버라이딩해서 객체를 반환하게 하는 것을 의미한다. 팩토리 메서드 패턴은 생성할 객체 타입을 예측할 수 없을 때 활용한다. 객체 생성의 책임을 하위 클래스에게 위임시키고, 어느 하위 클래스에게 위임했는 지에 대한 정보를 은닉할 때 활용한다. 정리하면 다음과 같다. - 팩토리 메서드 패턴은 어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측할 수 없을 때 사용한다. - 팩토리 메서드 패턴은 생성할 객체를 기술하는 책임을 자신의 서브클.. 2022. 7. 23. [Spring] Singleton Pattern [Spring] Singleton Pattern 객체지향 디자인패턴 중 싱글턴 패턴은 객체의 인스턴스를 오직 1개만 생성한다. 이것이 싱글턴 패턴의 정의이다. 커넥션 풀, 스레드 풀, 디바이스 설정 객체 등과 같은 것을 인스턴스를 여러 개 만들어 사용하게 되면 불필요한 메모리 자원 낭비가 되는데, 이럴 때 사용하는 것이다. 이런 싱글턴 패턴을 구현하기 위해서는 반드시 객체 생성을 위한 new에 제약을 걸어야 한다. 또한 만들어진 단일 객체를 반환할 수 있는 메서드가 필요하다. 그래서 아래의 세 가지 조건이 필요하다. - new를 외부에서 실행할 수 없도록 생성자에 private 접근 제어자를 지정한다. - 유일한 단일 객체를 반환할 수 있는 정적 메서드가 필요하다. - 유일한 단일 객체를 참조할 정적 참.. 2022. 7. 22. [스터디] 객체 지향 원리의 이해(총정리) [스터디] 객체 지향 원리의 이해(총정리) 스터디가 2주차에 접어들었다. 저번주에는 객체 지향의 전신인 절차/구조적 프로그래밍에 대해서 알아보았다면, 이제는 본격적으로 객체 지향이란 무엇인지, 어디까지 발전해있는지를 알아보는 시간을 가진다. 라는 책은 자바의 객체 지향의 개념을 안다고 생각하는 입문자들에게 '너 확실하게 이해한 것 맞니?' 라는 생각을 하게 만들고, 다시 제대로 이해하게 만든다. 한 달 여간 자바의 여러 면면을 알아왔고, 객체 지향의 개념에 대해서 80% 정도는 이해하고 있다고 생각했는데, 책을 읽으며 반성하게 되었고, 더 나아지는 과정을 얻을 수 있었다. 또한 객체 지향 속의 개념어의 의미를 더 명확히하고 친숙히 하는 데에 있어서 많은 도움이 되었다. 클래스부터 super까지 모두 훑어.. 2022. 7. 21. [GIT] Branch, Merge, Rebase 기본 개념 [GIT] Branch, Merge, Rebase 기본 개념 동일한 소스 코드를 활용해서 여러 개발자가 각자의 업무를 진행할 때가 있다. 어떤 개발자는 버그를 수정하고, 어떤 개발자는 새로운 기능을 만드는 역할을 하는 것처럼 말이다. 이 때 서로 다른 작업을 할 때는 서로 다른 버전의 코드가 생겨날 수 밖에 없다. 이럴 때 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어주는 기능이 깃의 '브랜치(Branch)'이다. 각자 독립적인 저장소 안에서 마음대로 소스코드를 변경하고, 분리된 작업 영역에서 변경된 내용은 원 버전과 비교해서 하나의 새로운 버전으로 만들어 낼 수 있다. 이번 포스팅에서는 세부 기술적인 부분이 아니라, 전반적인 깃의 브랜치와 머지, 충돌을 이해하기 위해 개괄적으로 개념을 살펴보.. 2022. 7. 20. [Java] equals()와 ==의 차이점 [Java] equals()와 ==의 차이점 equals()는 Object 클래스의 메소드이다. public boolean equals(Object obj) { ... } equals()는 리턴값으로 boolean 형식을 가진다. 모든 객체를 인자로 받을 수 있다. 자바에서는 두 객체를 동등 비교할 때 equals() 메서드를 사용한다. equals()는 두 객체를 비교해서 논리적으로 동등하면 true를 리턴하고, 그렇지 않으면 false를 리턴한다. 여기서 논리적 동등성은 같은 객체든 다른 객체든 객체가 저장하고 있는 데이터가 동일함을 의미한다. 즉, 객체의 메모리 번지를 비교하는 것이 아니라, 문자열이나 숫자가 같은지를 비교하는 것이다. == : 동치성 비교. 달이라고도 하고 moon이라고도 하지만,.. 2022. 7. 19. [C언어] 구조체 배열, 구조체 포인터 배열 [C언어] 구조체 배열 1. 구조체 배열의 필요성 만약 2차원 좌표를 10개 만들어야 한다면? struct Point2D{ int x; int y; }; // 구조체 변수 10개 선언 struct Point2D p1; struct Point2D p2; ... struct Point2D p10; 이렇게 반복 노가다를 하는 방법도 있겠지만, 수 천개의 구조체는 만들다가 인생이 다 가버릴지도 모른다. 일반 자료형과 같이 배열로 구조체를 만들면 되는 일을 굳이 이렇게 할 필요가 없다. struct Point2D p[3000]; // 요소가 3,000개인 구조체 배열 선언 2. 구조체 배열 선언하기 #include struct Point2D { int x; int y; }; int main() { struct P.. 2022. 7. 19. 이전 1 ··· 23 24 25 26 27 28 29 ··· 51 다음 728x90