전체 글(408)
-
(TIL) 20220919/ 이펙티브 자바 독서 등
🏴Facts(한 것) & Findings(배운 것) 아침에 일어나서 1일 1로그 100일 완성 IT 지식 책을 읽었다. 오늘은 어셈블러 + 고수준 언어에 대해서 읽었고, 누산 프로그램을 각기 다른 언어로 작성된 코드를 봤다. 각각의 언어의 역사와 간략한 특징에 대해서 얘기해주는데 재밌었다. 이펙티브 자바를 읽고 정리했다. 하루에 2개 정도씩 읽고 정리하려 한다. (Effective Java) 생성자 대신 정적 팩터리 메서드를 고려하라 클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자다. 이 외에도 클래스 인스턴스를 반환하는 다양한 방법이 있고, 이 문서에서는 에 나온 정적 팩터리 메서드에 대해서 소 mirrorofcode.tistory.com (Effective Java)..
2022.09.20 -
(Effective Java) 빌더 패턴(Builder) + Lombok Builder
이펙티브 자바에서 빌더 패턴을 소개하고 있다. 스프링을 사용하는 분들 혹은 Gradle에서 Lombok을 쓰는 분들이라면 @Builder, 빌더 어노테이션에 대해서 잘 알고 있을 것이다. Lombok은 다들 아시겠지만, 이 자체가 어떤 새로운 것을 만들어 내는 것이 아닌, 기존의 것을 쉽게 어노테이션만으로 처리할 수 있게끔 만들어 놓은 수단에 불과하다. @Builder 역시 그중에 하나인데, 자바의 빌더 패턴을 살펴봄과 동시에 롬복의 @Builder도 같이 살펴보면 좋을 것 같다. 🧐생성자 쓰지 왜.... 왜 빌더를 쓸까? (생성자 걍 쓰지) 아래 책의 예제 코드를 보자. public class NutirtionFacts { private final int servingSize; private final..
2022.09.20 -
(Effective Java) 생성자 대신 정적 팩터리 메서드를 고려하라
클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자다. 이 외에도 클래스 인스턴스를 반환하는 다양한 방법이 있고, 이 문서에서는 에 나온 정적 팩터리 메서드에 대해서 소개하려 한다. 책에서도 언급했지만 디자인 패턴에 있는 팩터리 메서드와는 다르다. (팩터리 메서드는 OCP를 목적으로 하고 있고, 정적 팩터리 메서드는 클래스 인스턴스 반환을 목적으로 한다.) 먼저 팩터리 메서드의 장점에 대해서 알아보자. 👍 이름을 가질 수 있다 기존의 생성자 코드를 살펴보자. @Getter class Book { private String name; private String author; public Book() {}; public Book(String name, String author) { th..
2022.09.19 -
(TIL) 20220910/ HackerRank SQL, 1일 1로그 독서
🏴Facts(한 것) & Findings(배운 것) 오늘은 추석 당일이라 많은 것을 하지는 못했다. 집에 오자마자 해커랭크에서 제공하는 SQL 문제들을 풀었다. 거의 JPA만 사용하다보니 뭔가 SQL 능력이 퇴화되는거 같고 (JPQL을 쓰지만) 점점 멀어지는거 같아서 해커랭크 기초 문제부터 풀면서 감을 익히고 있다. 오늘은 책에서 알고리즘 부분을 읽었다. 알고리즘 수업 복습도 할겸 새로운 지식도 얻을겸 해서 읽었다. 얼마전에 동생 국어 지문을 봐주면서 검색 알고리즘에 대한 글을 읽었는데, 검색 알고리즘을 구현해보고 싶은 생각도 들었다. 요즘 내가 취업을 한 후로 다른 분들에게 어떻게 기여할 수 있을까 생각하고 있던 와중에 내가 면접을 준비하면서 받아본 질문들과 예상 질문들을 추려서 웹 사이트로 ..
2022.09.10 -
(TIL) 20220908/ 1일 1로그 100일 완성, 코틀린
🏴Facts(한 것) & Findings(배운 것) 이라는 책을 읽고 있다. 책이 운영체제부터 네트워크, DB 등 CS 지식을 얄팍하면서도 필요한 부분을 다 알려줘서 재밌게 읽고 있다. 1일 1로그라고 하지만, 사실상 5일치 이상이 한 번의 챕터로 연결되어 있고, 읽다보면 금방이기 때문에 굳이 하루에 하나씩 읽을 필요는 없다. (추천) 유튜브에 올라와있는 코드 스피츠 영상으로 코틀린을 공부하고 있다. 코를린을 공부하는 이유는 여러가지가 있는데 코드의 양을 줄이고 싶어서 null 처리를 편-안하게 하고 싶어서 트렌드에 발 맞춰 가려고 사실 3번은 조금 억지에 가깝고, 지금 시기상으로 크게 필요하지 않을지도 모른다. 하지만 전체적인 코드의 양이 준다는 것은 매우 중요하다. Java 대비 무려 1/3..
2022.09.08 -
(Git) Git의 저장구조(커밋 저장 구조)
거의 모든 개발자는 Git을 사용한다. Git을 사용하는 이유는 여러가지가 있겠지만 아마 저장의 편의성 때문이지 않을까 생각한다. 그럼 Git commit을 입력 했을 때 어떤 일이 일어나는지 알고 있는가? 그 저장 방식을 알고 있는 사람은 극히 드물 것이라 생각된다. 코드의 작동 결과를 이해하는 방법에는 코드를 하나하나 살펴보는 방법도 있지만 DB를 열어서 어떤 결과가 저장되는지 확인하는 방법도 있다. 이렇듯, Git 역시 DB를 확인한다면 훨씬 더 Git에 대한 이해도가 올라갈 수 있을 것이다. 🧐 Git의 DB Git은 어떤 종류의 DB를 가지고 있을까? RDB? NoSQL? Key : Value 형태로 저장되기 때문에 NoSQL의 범주에 포함된다. 그럼 어떤 것이 key고 어떤 것이 value 일..
2022.09.07