본문 바로가기
반응형

분류 전체보기361

[디자인 패턴] 자바빈즈 패턴 (JavaBeans Pattern) * 아래 3개의 패턴을 하나의 주제를 가지고 차례차례 설명합니다. 참고바랍니다. 점층적 생성자 패턴 (TelescopingConstructor Pattern) 자바빈즈 패턴 (JavaBeans Pattern) 빌더 패턴 (Builder Pattern) 자바빈즈 패턴 (JavaBeans Pattern)이란? 매개변수가 없는 생성자로 객체를 만든 후 세터(setter) 메서드들을 호출해 원하는 매개변수의 값을 설정하는 방식이다. 코드 public class NutritionFacts { private int servingSize = -1; // 필수 private int servings = -1; // 필수 private int calories = 0; private int fat = 0; private i.. 2020. 5. 11.
[Algorithm] 만 나이 계산하기 (Calculate american age) 문제 생년월일을 입력받아 만 나이를 반환하시오. 풀이 만 나이(american age)란? 만 나이는 태어난 때를 기산점으로 하여 매 생일을 맞을 때마다 한 살을 먹는다. 태어나서 얼마나 살았느냐를 나타낸다. 전 세계 대부분의 나라에서 사용하고 있다. 대한민국에서는 일상생활에서는 보통 세는나이를 쓰지만, 법률 및 각종 공문서, 언론보도에서는 대부분 만 나이를 사용한다. 세는나이는 태어남과 동시에 한 살이 되지만, 만 나이는 출생 후 1년(돌)이 되면 1세가 되고 그 전에는 생후 개월수로 센다. (출처 : 위키 https://ko.wikipedia.org/wiki/%EB%82%98%EC%9D%B4) 만 나이의 정의를 보면 태어난 때를 기산점(1)으로 하여 매 생일을 맞을 때마다 한 살(2)을 먹는다. 정의.. 2020. 5. 6.
[개발용어] 멱등성(Idempotence)이란? 멱등성(Idempotence)이란? 연산을 여러 번 적용하더라도 결과값이 달라지지 않는 성질 예시 Rest API의 HTTP Method들 중 멱등성을 가진 것은 get, put, delete다. post는 status가 변하기 때문에 멱등성이 없다. 2019. 11. 11.
[Spring] 왜 Constructor Injection(생성자 주입)을 사용해야 할까? 왜 Constructor Injection(생성자 주입)을 사용해야 할까? 이전 포스팅에서 Field Injection, Setter Injection 대신 Constructor Injection을 사용해야한다고 했는데 어떤 장점이 있어서 사용해야 하는지 알아보자. 1. Constructor Injection(생성자 주입) public class SpellChecker { private TextDictionary textDictionary; private VoiceDictionary voiceDictionary; @Autowired //4.3부터 단일 생성자일 경우 @Autowired 생략가능 public SpellChecker(TextDictionary t, VoiceDictionary v) { thi.. 2019. 11. 6.
[Spring] Spring은 DI를 어떻게 지원할까? Spring은 DI를 어떻게 지원할까? Spring하면 POJO, IOC/DI, AOP, PSA 를 특징으로 갖는 프레임워크라고 한다. 그 중 Spring에서는 DI를 지원하기 위해 IOC를 사용한다. IOC(Inversion of Control)이란? 개발자가 프로그램의 흐름을 제어하지 않고 프레임워크가 프로그램의 흐름을 주도하는 것을 말한다. 스프링에선 이 개념을 Spring DI 컨테이너를 이용해 빈 생명주기 관리, 의존성 주입 등을 도맡아 처리한다. * IOC 컨테이너라고도 하는데 IOC가 내포하는 범위가 너무 넓어 DI 컨테이너라고 부른다고 한다. Spring DI 컨테이너가 DI를 제공하는 방법 DI 컨테이너가 DI를 제공하는 방법엔 @Autowired 어노테이션을 붙히는 방법, XML에 Be.. 2019. 11. 6.
[Spring] DI(Dependency Injection)란? DI(Dependency Injection)란? DI는 디자인 패턴 중 하나이며 객체 간의 의존성을 자신이 아닌 외부에서 받아 느슨한 결합을 하여 유연성, 재사용성, 테스트 용이성을 개선시킨다. DI를 왜 써야하는지 아래 코드를 보며 설명하겠습니다. public class SpellChecker { Dictionary dictionary = new KoreanDictionary(); } 맞춤법 검사기 만드는 프로젝트를 한다고 가정하겠습니다. 맞춤법 검사기는 사전(Dictionary)에 의존하는데 위 클래스는 사전 종류가 KoreanDictionary 로 정해져 있습니다. 이런걸 SpellChecker는 KoreanDictionary에 의존한다고 표현합니다. 그리고 직접 객체를 정해놨기 때문에 강한결합을 .. 2019. 11. 5.
[Algorithm] 10진수를 2, 8, 16 진수로 변환하기 (Convert decimal to binary, octal, and hexadecimal) 문제 10진수를 2, 8, 16 진수로 변환하시오. (n 2019. 11. 4.
[Intellij] 자동완성 대소문자 구분 해제하기 Intellij Ver. 2019.2 기준 File > Settings (단축키 Ctrl + Alt + S) > Editor > General > Code Completion > Match case 체크 해제 2019. 11. 4.
[디자인 패턴] 점층적 생성자 패턴 (Telescoping Constructor Pattern) * 아래 3개의 패턴을 하나의 주제를 가지고 차례차례 설명합니다. 참고바랍니다. 점층적 생성자 패턴 (Telescoping Constructor Pattern) 자바빈즈 패턴 (JavaBeans Pattern) 빌더 패턴 (Builder Pattern) 점층적 생성자 패턴 (Telescoping Constructor Pattern)이란? 생성자를 필수 매개변수 1개만 받는 생성자, 필수 매개변수 1개와 선택 매개변수 1개를 받는 생성자, 선택 매개변수 2개를 받는 생성자 등에 형태로 매개변수 개수만큼 생성자를 늘리는 방식 코드 public class NutritionFacts { private final int servingSize; // 필수 private final int servings; // 필수.. 2019. 10. 23.
반응형