목록분류 전체보기 (201)
JUINTINATION
비지터 패턴이란?비지터 패턴(방문자 패턴)은 알고리즘을 객체 구조에서 분리시키는 디자인 패턴이다. GOF 디자인 패턴 중 행위 패턴에 해당하며, 이렇게 분리를 하면 구조를 수정하지 않고도 실질적으로 새로운 동작을 기존의 객체 구조에 추가할 수 있게 되는 개방-폐쇄 원칙을 적용하는 방법의 하나이다.비지터 패턴은 이해하거나 구현하기 매우 어렵고, 심지어 적용하면 코드의 가독성과 유지보수성이 떨어지기 때문에 실제로 거의 사용되지는 않는다. 따라서 매우 특수한 상황이 아니라면 비지터 패턴은 고려할 필요가 없다.비지터 패턴의 도출 과정다음 예제를 통해 비지터 패턴이 만들어지는 과정을 살펴보자.웹 사이트에서 대량의 파일을 크롤링하는데 이 파일들의 형식은 PDF, PPT, Word라고 가정해보자. 이 리소스 파일을 ..
빌더 패턴이란?빌더 패턴은 객체를 생성할 때 생성자(Constructor)만 사용할 때 발생할 수 있는 문제를 개선하기 위해 고안되었으며, 생성기 패턴이라고도 한다. GOF 디자인 패턴 중 생성 패턴에 해당하며, 복잡한 객체를 생성하는 클래스와 표현하는 클래스를 분리하여 동일한 절차에서도 서로 다른 표현을 생성하는 방법을 제공한다.생성자를 사용한 객체 생성일반적인 개발에서 객체를 만드는 일반적인 방법은 new 예약어를 사용하여 클래스의 생성자를 호출하는 것이다. 리소스 풀(Resource pool)의 설정을 위한 ResourcePoolConfig 클래스를 구현할 때, 이 리소스 풀 설정 클래스에는 아래의 표와 같이 설정 가능한 멤버 변수가 있다.멤버 변수설명함수 설정기본값name리소스 이름O없음maxTo..
JSON(Javascript Object Notation)이란? JSON은 속성-값 쌍(Attribute-Value Pair) 또는 키-값 쌍(Key-Value Pair)으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. AJAX(Asynchronous Javascript and XML)에서 많이 사용된다. XML(eXtensible Markup Language)을 대체하는 주요 데이터 포맷이다. 언어 독립형 데이터 포맷으로 다양한 데이터 프로그래밍 언어에서 사용된다. JSON 표현 자료형 자료형 사례 숫자(Number) 기본 자료형의 수는 정수, 실수(고정소수점, 부동소수점)로 표현 ex) 74, 3.14, 3.4e+4 문자열(String) 항상..
지난번에 책을 보면서 따라서 만든 간단한 게시판 프로젝트인 Board-Clone 프로젝트를 도커라이징해봤다. Express.js를 사용한 스퍼트 프로젝트에도 적용해본 적이 있는데 그 내용을 내가 안 적어둬서 처음에 조금 헤맸다..여러 블로그와 학교 선배의 깃허브 코드를 참고해가면서 Dockerfile을 작성해나가는데 Express.js를 도커라이징할 때와 큰 차이는 없었지만 약간씩 달라서 좀 당황하긴 했다. 그리고 jdk 17 버전으로 한 사람이 너무 적어서 비교군을 찾기도 쉽지 않았다. 그래도 아무튼 성공하긴 했는데 그 내용을 또 까먹기 전에 적어보자.DockerfileFROM gradle:7.3.3-jdk17 AS builderWORKDIR /buildCOPY . /buildRUN ./gradlew ..
지난 Mac OS 자바 버전 여러 개 관리하기 글에서 잠깐 언급했듯이 스프링을 쓸 일이 생겨서 jdk 17 버전을 설치했었다. 이후에 ETRI에서 대여한 코드로 배우는 스프링 부트 웹 프로젝트 책과 해당 코드가 적힌 깃허브를 참고하여 게시판 프로젝트를 따라 치면서 스프링 공부를 시작했다. 물론 책의 버전과 지금 버전이 많이 달라져서 오류가 많이 발생했고 관련 내용은 네이버 카페의 QnA 게시판도 참고했다. 이제 그 내용을 차근차근 따라가보자. 구멍가게코딩단 : 네이버 카페안녕하세요? 구멍가게 코딩단의 활동을 위한 카페입니다.cafe.naver.com프로젝트 생성start.spring.io에서 다음과 같이 Thymeleaf, Lombok, Spring Data JPA, Spring Web, Spring B..
마지막 후기.. 2달 동안의 ETRI 연구연수생 생활이 끝이 났다. 드디어라는 표현도 애매하고 결국이라는 표현도 애매한.. 뭐 그렇게 끝이 났는데 결론은 경험적으로 얻어 가는 것도 많았고 좋은 사람들도 많이 만나게 돼서 감사한 시간이었던 것 같다. Weekly 추천에서 Monthly 추천으로 지난 글에서 적지 않았던 마지막 과제가 있는데 바로 기존의 주별로 상품을 추천하던 모델을 월별로 상품을 추천하도록 모델을 수정하는 것이다. 주별로 데이터를 자르게 된다면 그냥 7일 단위로 자르면 되기 때문에 아무런 문제 없이 진행했는데 월별로 자르려고 하니까 각 월마다 30일인 월이 있고 31일 월이 있고.. 2월은 또 윤년까지.. 이런 조건들을 만족시키는 로직을 작성하려고 하니까 코드가 너무 지저분해질 것 같고 귀..