-
[JAVA] Garbage Collector (GC)
JAVA의 장점 중 하나는 개발자가 메모리 관리를 하지 않아도 된다는 점이다. JAVA 언어만을 배운 개발자의 경우 이게 무슨소리인가 의아해 하거나 대충 개념은 알고 있는데 그게 왜 장점인지 이해하지 못할 수도 있다. 하지만 직접 메모리를 참조할 수 있는 언어로 개발을 해봤다면 GC가 얼마나 개발자의 스트레스를 줄여줬는지 알 수 있다. …
-
내 인생 선택의 순간들 (Life was like a box of chocolates)
나는 대체적으로 인생의 방향에 대한 결정은 스스로 하는 편이다. 하지만 인생의 중요한 순간들마다 주변 사람들의 의견을 듣는것을 마다하지 않는다. 어떤 조언들은 아직까지도 내 인생에 큰 영향을 미치고 있다. 뻔한 이야기지만 결국 모든 조언은 내가 중심이 되어야 한다. 그리고 그 조언이 맞던 틀리던 그 책임은 본인이 지는 것이다. 문제는 아무리 좋은 조언이어도 그 당시에는 맞고, 틀린 것을 판단할수가 없다. 결국 그 평가는 미래의 내가 하게 될 것이고, 그 선택에 대한 책임도 미래의 내가 지게 된다. 맞고 틀린것을 판단할 수 없으니 아무렇게나 선택해도 된다는 뜻이 아니다. 그 고민을 통해 미래의 내가 하게될 자책을 줄일 수 있다. 나의 선택이 치열한 고민끝에 나온 결정이라면 후회할지언정 자책하지는 않는다. 그러니 우리는 인생의 중요 선택지 앞에서 치열하게 고민하고, 그 선택에 따른 결과를 즐겁게 기대하면 된다. …
-
JPA는 MyBatis를 완전히 대체할 수 있을까?
Spring Data JPA vs. MyBatis …
-
[Spring Boot] 스프링 입문 - 코드로 배우는 스프링 부트, 웹MVC, DB 접근 기술 (인프런) #4 (Repository)
1. 메모리 클래스 사용 …
-
[Spring Boot] 스프링 입문 - 코드로 배우는 스프링 부트, 웹MVC, DB 접근 기술 (인프런) #3 (MVC 패턴)
일반적인 MVC 패턴 구조 MVC 패턴을 사용하는 일반적인 웹 애플리케이션은 아래와 같은 구조로 되어있다. 전통적인 Model, View, Controller의 역할을 나누고 각 계층마다 역할을 명확하게 나눈다. 유지보수 측면에서 보더라도 이러한 패턴 구조를 지키는 것이 서로간의 로직 이해에 도움이 된다. 물론 기본적인 구조는 컨트롤러 → 서비스 → 리포지토리 → DB 순으로 접근하도록 되어있지만 단순 조회와 같은 특정 로직에서는 컨트롤러에서 리포지토리를 직접 접근하는 것도 나쁘지 않다. 해당 수업에서는 Repository를 인터페이스로 구현했다. 처음 구현은 더미역할을 하는 Memory DB를 만들어서 로직을 완성하고, 이후에 H2라는 실제 DB와 연동했다. 향후에 자세한 설명이 담긴 포스트를 올리겠지만 DB가 변경되는 커다란(?) 구조 변경에도 불구하고 코드 변경은 최소화 되었다. 객체지향의 5대 원칙 중 하나인 개방-폐쇄 원칙(OCP, Open-Closed Principle)과 스프링의 DI(Dependencies Injection) 특성을 살린 코드인데 자바와 스프링의 맛을 잘 살린 너무나도 훌륭한 예제코드였다. …
-
실수해도 괜찮아
…
-
[Github Page] Google 검색에 블로그 노출 시키기
개인 자료 보관용으로 만든 블로그지만 실제로 검색을 했을 때 내 블로그 글이 검색이 되는지 궁금해졌다. 아무래도 공개된 웹 상에 올리는 글이다 보니 포스트를 작성할 때 잘못된 정보가 없는지 신경이 쓰이는 것이 사실이고, 실제로 기술적인 내용이 들어간 글은 90%이상 만들어놓고 해당 포스트의 정보가 정확한지 확인하지 못해 포스트로 올리지 못하는 경우도 있다. 그러다보니 블로그가 점점 개인 일기장화 되고 있다는 느낌이 있지만… …
-
[Github Page] Google Analytics로 블로그 방문자 관리하기
개인적인 스터디 용도로 만든 블로그지만 실제 블로그의 글을 보고 있는 사람이 있는지 궁금해졌다. 현재 사용중인 Jekyll-Uno 테마는 GA 설정을 쉽게 할 수 있도록 config를 제공하기 때문에 GA를 생성해서 테스트 적용시켜 보았다. …
-
[이펙티브자바] 아이템2 - 빌더 패턴 (Builder pattern) feat.스프링부트 JPA 활용편 (by 김영한) #3
이전 글에 설명한 것과 같이 아래의 코드는 결국 오류를 발생시키게 된다. 당장 눈에보이는 create 메서드에서는 builder를 통해 객체를 초기화 하기 때문에 오류가 없을지 몰라도 이후 Book 객체를 조회하는 로직이 추가되면 아래와 같은 오류를 발생시킨다. 참고로 해당 코드는 앞선 포스트에 이어 설명하기 위해 @Builder 대신 @SuperBuilder 를 사용한 예제를 사용한다. …
-
[이펙티브자바] 아이템2 - 빌더 패턴 (Builder pattern) feat.스프링부트 JPA 활용편 (by 김영한) #2
해당 글은 이펙티브 자바 아이템 2 - 생성자에 매개변수가 많다면 빌더를 고려하라에 나오는 빌더 패턴을 Lombok을 이용하여 최종 적용한 코드를 소개한다. 빌더 패턴에 대한 자세한 설명은 이전 포스트를 참고하면 된다. …