분류 전체보기

    서평 - 휴식의 철학

    휴식의 중요성 이전에 직장을 다닐 땐 주말의 술자리만을 기다리며 한 주의 스트레스를 풀었다. 스트레스는 해소됐지만 이후에 찾아오는 공허함과 체력소진은 해결할 수 없었다. 당장의 스트레스 해소에 급급하기만 할 뿐 근본적인 원인이 해결되지 않는 방법이었다. 그 때 어렴풋이 올바른 휴식의 중요성을 느끼고 여러 방법을 찾아 봤었다. 하지만 비슷한 일상의 관성에 노력은 쉽게 무너졌고 다시 원래의 모습으로 돌아오게 됐었다. 다른 직업들도 마찬가지겠지만 개발자는 특히 업무와 관련한 개인 공부시간이 중요하다. 그러다보니 개발자로서의 삶과 그 외의 삶의 균형을 맞추기가 쉽지 않다. 작년 가을 쯤 번아웃을 한 번 겪고 나니 개발(학습)에 몰두한 시간만큼 적당한 휴식이 반드시 필요하다고 느끼게 됐다. 이 후로 주에 하루는 ..

    Spring - DispatcherServlet에 대해 알아보자

    1. DispatcherServlet? 과거엔 view(사용자에게 보여지는 영역)단에서 비즈니스 로직을 처리해 코드가 서로 얽혀 유지보수에 어려움이 있었다. 이를 해결하기 위해 나온 패턴이 MVC(Model-View-Controller)패턴이다. 초창기 MVC패턴에선 다양한 요청을 처리하기 위한 Controller가 많아지고 이에 따라 중복되고 공통된 기능을 하는 코드들이 늘어났다. 이를 해결하기 위해 나온 방법이 FrontController다. FrontController의 역할은 한 회사의 대표와 같다. 대표는 외부에서 들어오는 각각의 요청들을 적절하게 수행할 수 있는 직원들에게 분배한다. 또 본인 혼자서 수행하기에 업무양이 많다면 전무, 상무, 부장 등 간부들에게 지시를 내려 적합한 직원을 찾도록한..

    Java - 서블릿과 서블릿 컨테이너

    1. Servlet? 1.1 정의 웹페이지를 동적으로 생성하고 웹 서버의 성능을 향상하기 위해 사용하는 자바 프로그램이다. 쉽게 풀어 쓰자면 클라이언트의 요청을 처리하고 응답을 생성하는 자바의 클래스라고 할 수 있다. 즉, 요청과 응답에 대한 로직을 개별적으로 구현하기엔 너무 복잡하기에 개발자의 요청, 응답처리를 간편하게 도와준다. 1.2 특징 JSP와의 차이 - JSP는 HTML안에 자바 코드가, 서블릿은 자바 코드안에 HTML을 포함하는 차이가 있다. 스레드 사용 - 외부요청에 프로세스 대신 경량의 스레드로 응답하기 때문에 가볍다. 동적 웹 페이지 생성 - 클라이언트의 요청에 따라 서비스를 제공하고 응답 서블릿 컨테이너에 의존적 - 클라이언트의 요청을 서블릿 컨테이너가 받고 적절한 서블릿에게 전달 보..

    프로그래머스 - 다음 큰 숫자

    1. 문제 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,000 이하의 자연수 입니다. 2. 접근 방식 매개 변수로 전해지는 n의 값을 이진수로 변환을 하고, n값부터 1씩 증가시켜서 완전 탐색을 하면 시간초과가 날 것이라 생각했다. ..

    [JPA] GenerationTarget encountered exception accepting command : Error executing DDL - Oracle

    1. 오류 발생 Oracle DB와 연동해서 테스트 코드를 실행했을 때 아래와 같은 오류가 발생했다. GenerationTarget encountered exception accepting command : Error executing DDL " create table posts ( id number(19,0) generated as identity, author varchar2(255 char), content TEXT not null, title varchar2(500 char) not null, primary key (id) )" via JDBC [ORA-00902: 데이터유형이 부적합합니다 ] 2. 원인 Oracle에선 TEXT 타입이 없기 때문이다. TEXT 타입을 지원하는 DB에선 가능하다. ..

    [디자인 패턴] - Builder Pattern & @Builder

    Builder Pattern이란? Creational Pattern(생성 패턴) 중 하나로 복합 객체를 작게 나누어 조립하듯이 객체를 생성하는 패턴이다. 객체의 생성 과정과 표현 방법을 분리하여 같은 프로세를 통해 다른 결과를 만들어 낸다. 위 두 문장이 분리된 것처럼 Builder Pattern 또한 구현 방식이 2가지로 나뉜다. 생성자의 인자가 많아 인자에 어떤 값을 넣을 지 파악하기 어려운 경우(일반적으로 많이 사용, 메소드 체이닝 방식) - 이펙티브 자바의 빌더패턴(객체의 불변성 확보와 생성자의 매개변수가 많은 경우에 유리) 객체 생성 시 여러 단계의 순서를 통해 생성을 하고, 해당 순서를 결정한 다음 각 단계를 다양하게 구현하는 방식 (즉, 제품 생산 과정을 정해 두고 여러 재료를 가지고 다양한..