분류 전체보기

    [객체지향의 사실과 오해] 인사이트 정리 겸 회고

    객체지향의 사실과 오해를 읽고 인사이트 정리 겸 회고 읽기 시작한 지는 꽤 되었지만, 이런저런 이유로 미루고 미루다 회사에서 객체지향 프레임워크도 다루기 시작했고 읽고 싶었던 책을 읽기 위해 밀린 책을 쳐낼 겸 독파했다.. 밀렸던 블로그도 이를 계기로 다시 시작할 예정 이제는 보여주기식이 아닌 진짜 일기장처럼 끄적임으로 작성해야겠다고 다짐ㅋㅅㅋ 초중반 부분은 객체지향의 패러다임과 객체지향 사고의 관점을 이해시키기 위해 카페의 생리(손님 점원 바리스타)와, 이상한 나라의 앨리스에서 재판을 받는 부분(왕 하얀 토끼 모자장수)을 비유 삼아 이야기를 풀어나간다. 개인적으로 객체지향은 학교 수업만 듣고 자꾸 클래스에 한정 지어 생각하고 개념적으로 붕 떠있는 부분들이 있었는데, 이러한 비유들로 접근하니 좀 더 구체..

    [OOP] SOLID에 대한 이해

    로버트 마틴 아저씨가 설계한 객체 지향 프로그래밍의 원칙(SOLID)을 이해해 보자. SOLID는 5가지 기본 원칙의 시작 글자를 합친 것이며, 5가지는 다음과 같다. 단일 책임 원칙 (Single responsibility principle, SRP) 개방-폐쇄 원칙 (Open/closed principle, OCP) 리스코프 치환 원칙 (Liskov substitution principle, LSP) 인터페이스 분리 원칙 (Interface segregation principle, ISP) 의존관계 역전 원칙 (Dependency inversion principle, DIP) 이 원칙들은 유기적으로 연관되어 있지만, 이해하기 쉽게 각각 하나씩 분할 정복해 보자. # 단일 책임 원칙 (Single re..

    [Spring] Lombok 사전

    Lombok 라이브러리 관련 용어 정리 자주 쓰는거 계속 업데이트해서 사전처럼 쓸 예정.. # Annotation @Getter : 게터 생성 @Setter : 세터 생성 @NorgsConstructor : 기본 생성자 생성 @AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자 생성 @RequiredArgsConstructor : final이나 @Nonull 필드 만 파라미터로 받는 생성자 생성 @EqualsAndHashCode : 동등성(두 객체의 내용이 같은지), 동일성(두 객체가 같은지)을 위한 equals, hashcode 메서드 자동 생성

    [Spring] JPA 사전

    스프링 JPA 관련 용어 정리 자주 쓰는거 계속 업데이트해서 사전처럼 쓸 예정.. # hibernate.ddl-auto 속성 create : 기존 테이블 삭제 후 새로 생성 (drop -> create) create-drop : create에서 종료할때 drop 추가 (drop -> create -> drop) update : DB 테이블과 엔티티 매핑 비교해서 변경 사항만 업데이트 (테이블이 없으면 create) validate : DB 테이블과 엔티티 매핑 비교해서 차이가 있으면 경고 후 앱 실행하지 않음 none : 자동 생성 기능 사용 안함 # Annotation @Table : 테이블 관련 설정 (name, uniqueConstraints, indexes 등) @Column : 컬럼 관련 설정 ..

    [데이터 중심 애플리케이션 설계] 저장소와 검색

    데이터 중심 애플리케이션 설계를 독파하며 정리하는 글입니다. # 데이터베이스를 강력하게 만드는 데이터 구조 세상에서 제일 간단한 데이터베이스를 구현해 보자. #!/bin/bash db_set () { echo "$1,$2" >> database } db_get () { grep "л$1," database | sed -e "s/A$1,//" | tail -n 1 } 키-값 저장소를 함수 두 개로 구현한 예시이다. 이런 방식으로 데이터베이스를 구성할 경우 db_set()은 좋은 성능을 보인다. 단순히 파일의 끝에 데이터를 추가해 주기만 하기 때문이다. 실제로 많은 데이터베이스의 로그는 이런 append-only 방식의 데이터 파일을 사용한다. 다만, db_get()의 경우 문제가 있다. 데이터베이스에 많은..

    [Career] SW마에스트로 13기

    내 인생에서 제일 스펙타클했던 2022년이 끝나고 미루고 미루던 소마 13기 회고를 드디어 해본다.. # 지원 계기 소마에 대해서는 지원하기 한참 전부터 이미 알고 있었다. 소마에 들어가면 얻을 수 있는 지원과 혜택이 너무 좋았고, 주위에 소마 출신인 분들이 몇 분 계셨는데 모두 꼭 들어가라고 입을 모아 얘기해 주셨다. 게다가 나는 컴공에 들어온 이후 창업을 도전해 보고 싶었기에 소마는 나에게 최선의 선택지였다. 그래서 학교도 졸업할 겸, 2022년 1월 잘 다니던 회사를 퇴사하고 내 꿈을 도전하러 소마를 선택했다. # 준비와 합격 사실 준비과정은 별 다를 게 없었다. 일반 대기업 IT직군 채용 프로세스와 유사한 걸 넘어서 그냥 똑같다. 2번의 코테와, 1번의 심층 면접을 통과하면 합격이었다. 이때 당시..