주니어 백엔드 개발자
홈
소개
아카이브
카테고리
Java
19
알고리즘
7
알고리즘 문제
54
Security
1
이팩티브 자바 3/E
90
Git
1
디자인 패턴
13
JPA
41
Clean Code
1
리팩토링
28
Docker
9
DB
3
Book
1
GitHub
© 2023. All rights reserved.
DEV ℧
Developer Diary
아카이브
2023
[DesignPattern] 책임 연쇄 패턴 (Chain Of Responsibility)
2023년 12월 30일
[DesignPattern] 프록시 (Proxy)
2023년 12월 29일
[DesignPattern] 플라이웨이트 (Flyweight)
2023년 10월 06일
[DesignPattern] 퍼사드 (Facade)
2023년 09월 30일
[DesignPattern] 데코레이터 (Decorator)
2023년 09월 29일
[DesignPattern] 컴포지트 (Composite)
2023년 09월 29일
[DesignPattern] 브릿지 (Bridge)
2023년 09월 23일
[DesignPattern] 어댑터 (Adapter)
2023년 09월 10일
[DesignPattern] 프로토타입 (Prototype)
2023년 09월 09일
[DesignPattern] 싱글톤 (Singleton)
2023년 09월 09일
[EffectiveJava] item90 - 직렬화된 인스턴스 대신 직렬화 프록시 사용을 검토하라
2023년 08월 19일
[EffectiveJava] item89 - 인스턴스 수를 통제해야 한다면 readResolve보다는 열거 타입을 사용하라
2023년 08월 19일
[EffectiveJava] item88 - readObject 메서드는 방어적으로 작성하라
2023년 08월 19일
[EffectiveJava] item87 - 커스텀 직렬화 형태를 고려해보라
2023년 08월 17일
[EffectiveJava] item86 - Serializable을 구현할지는 신중히 결정하라
2023년 08월 14일
[EffectiveJava] item85 - 자바 직렬화의 대안을 찾으라
2023년 08월 14일
[EffectiveJava] item84 - 프로그램의 동작을 스레드 스케줄러에 기대지 말라
2023년 08월 14일
[EffectiveJava] item83 - 지연 초기화는 신중히 사용하라
2023년 08월 12일
[EffectiveJava] item82 - 스레드 안전성 수준을 문서화 하라
2023년 08월 02일
[EffectiveJava] item81 - wait와 notify보다는 동시성 유틸리티를 애용하라
2023년 08월 01일
[Java] java.lang.NoClassDefFoundError: Could not initialize class org.xnio.channels.Channels (JDK의 Bug)
2023년 07월 31일
[EffectiveJava] item80 - 스레드보다는 실행자, 태스크, 스트림을 애용하라
2023년 07월 31일
[EffectiveJava] item79 - 과도한 동기화는 피하라
2023년 07월 29일
[EffectiveJava] item78 - 공유 중인 가변 데이터는 동기화해 사용하라
2023년 07월 22일
[EffectiveJava] item77 - 예외를 무시하지 말라
2023년 07월 22일
[EffectiveJava] item76 - 가능한 한 실패 원자적으로 만들라
2023년 07월 22일
[EffectiveJava] item75 - 예외의 상세 메시지에 실패 관련 정보를 담으라
2023년 07월 22일
[EffectiveJava] item74 - 메서드가 던지는 모든 예외를 문서화하라
2023년 07월 22일
[EffectiveJava] item73 - 추상화 수준에 맞는 예외를 던져라
2023년 07월 21일
[EffectiveJava] item72 - 표준 예외를 사용하라
2023년 07월 21일
[Book] 실용주의 프로그래머
2023년 07월 16일
[EffectiveJava] item71 - 필요 없는 검사 예외 사용은 피하라
2023년 07월 14일
[EffectiveJava] item70 - 복구할 수 있는 상황에는 검사 예외를, 프로그래밍 오류에는 런타임 예외를 사용하라
2023년 07월 14일
[EffectiveJava] item69 - 예외는 진짜 예외 상황에만 사용하라
2023년 07월 14일
[EffectiveJava] item68 - 일반적으로 통용되는 명명 규칙을 따르라
2023년 07월 10일
[EffectiveJava] item67 - 최적화는 신중히 하라
2023년 07월 10일
[EffectiveJava] item66 - 네이티브 메서드는 신중히 사용하라
2023년 07월 10일
[EffectiveJava] item65 - 리플렉션보다는 인터페이스를 사용하라
2023년 07월 10일
[EffectiveJava] item64 - 객체는 인터페이스를 사용해 참조하라
2023년 07월 10일
[EffectiveJava] item63 - 문자열 연결은 느리니 주의하라
2023년 07월 10일
[EffectiveJava] item62 - 다른 타입이 적절하다면 문자열 사용을 피하라
2023년 07월 10일
[EffectiveJava] item61 - 박싱된 기본 타입보다는 기본 타입을 사용하라
2023년 07월 10일
[EffectiveJava] item60 - 정확한 답이 필요하다면 float와 double은 피하라
2023년 07월 09일
[EffectiveJava] item59 - 라이브러리를 익히고 사용하라.
2023년 07월 09일
[EffectiveJava] item58 - 전통적인 for 문보다는 for-each 문을 사용하라
2023년 07월 09일
[EffectiveJava] item57 - 지역변수의 범위를 최소화하라
2023년 07월 09일
[EffectiveJava] item56 - 공개된 API 요소에는 항상 문서화 주석을 작성하라
2023년 07월 05일
[EffectiveJava] item55 - 옵셔널 반환은 신중히 하라
2023년 07월 05일
[EffectiveJava] item54 - null이 아닌, 빈 컬렉션이나 배열을 반환하라
2023년 07월 04일
[EffectiveJava] item53 - 가변인수는 신중히 사용하라
2023년 07월 04일
[EffectiveJava] item52 - 다중정의(Overloading)는 신중히 사용하라
2023년 07월 04일
[EffectiveJava] item51 - 메서드 시그니처를 신중히 설계하라
2023년 07월 01일
[Java] Spring의 역직렬화(deserialize) 이야기
2023년 06월 24일
[Java] Java의 직렬화(serialize)/역직렬화(deserialize)
2023년 06월 19일
[Java] 분산 락(Distributed Lock)을 이용해 동시성 제어하기
2023년 06월 19일
[EffectiveJava] item50 - 적시에 방어적 복사본을 만들라
2023년 06월 18일
[EffectiveJava] item49 - 매개변수가 유효한지 검사하라
2023년 06월 18일
[EffectiveJava] item48 - 스트림 병렬화는 주의해서 적용하라
2023년 06월 18일
[EffectiveJava] item47 - 반환 타입으로는 스트림보다 컬렉션이 낫다.
2023년 06월 17일
[EffectiveJava] item46 - 스트림에서는 부작용 없는 함수를 사용하라
2023년 06월 17일
[EffectiveJava] item45 - 스트림은 주의해서 사용하라
2023년 06월 13일
[EffectiveJava] item44 - 표준 함수형 인터페이스를 사용하라
2023년 06월 10일
[EffectiveJava] item43 - 람다보다는 메서드 참조를 사용하라
2023년 05월 20일
[EffectiveJava] item42 - 익명 클래스보다는 람다를 사용해라
2023년 05월 20일
[EffectiveJava] item41 - 정의하려는 것이 타입이라면 마커 인터페이스를 사용하라
2023년 05월 17일
[EffectiveJava] item40 - @Override 애너테이션을 일관되게 사용하라
2023년 05월 16일
[EffectiveJava] item39 - 명명 패턴보다 애너테이션을 사용하라
2023년 05월 16일
[EffectiveJava] item38 - 확장할 수 있는 열거 타입이 필요하면 인터페이스를 사용하라
2023년 05월 13일
[EffectiveJava] item37 - ordinal 인덱싱 대신 EnumMap을 사용하라
2023년 05월 13일
[EffectiveJava] item36 - 비트 필드 대신 EnumSet을 사용하라
2023년 05월 03일
[EffectiveJava] item35 - ordinal 메서드 대신 인스턴스 필드를 사용하라
2023년 05월 01일
[EffectiveJava] item34 - int 상수 대신 열거 타입을 사용하라
2023년 05월 01일
[EffectiveJava] item33 - 타입 안전 이종 컨테이너를 고려하라
2023년 04월 30일
[EffectiveJava] item32 - 제네릭과 가변인수를 함께 쓸 때는 신중해라
2023년 04월 30일
[Java] Comparable을 이용해 객체를 한글, 영어, 숫자 순 정렬하기
2023년 04월 29일
[EffectiveJava] item31 - 한정적 와일드카드를 사용해 API 유연성을 높이라
2023년 04월 29일
[EffectiveJava] item30 - 이왕이면 제네릭 메소드로 만들라
2023년 04월 29일
[Java] Spring boot에서 graceful shutdown을 적용하자
2023년 04월 28일
[EffectiveJava] item29 - 이왕이면 제네릭 타입으로 만들라
2023년 04월 18일
[EffectiveJava] item28 - 배열보다는 리스트를 사용하라
2023년 04월 16일
[EffectiveJava] item27 - 비검사 경고를 제거하라
2023년 04월 16일
[EffectiveJava] item26 - 로 타입은 사용하지 마라
2023년 04월 16일
[EffectiveJava] item25 - 톱레벨 클래스는 한 파일에 하나만 담으라
2023년 04월 15일
[EffectiveJava] item24 - 멤버클래스는 되도록 static으로 만들어라
2023년 04월 15일
[EffectiveJava] item23 - 태그달린 클래스보다는 클래스 계층구조를 활용하라
2023년 04월 14일
[EffectiveJava] item22 - 인터페이스는 타입을 정의하는 용도로만 사용하라
2023년 04월 13일
[EffectiveJava] item21 - 인터페이스는 구현하는 쪽을 생각해 설계하라
2023년 04월 07일
[EffectiveJava] item20 - 추상 클래스보다는 인터페이스를 우선시하라
2023년 04월 06일
[Java] No serializer found for class (Jackson Databind 에러) 해결하기
2023년 03월 27일
[Java] Database Lock을 이용해 동시성 제어하기
2023년 03월 23일
[DB] 트랜잭션의 전파 레벨 (Propagation)
2023년 02월 26일
[DB] 트랜잭션의 격리 수준 (Isolation Level)
2023년 02월 25일
[DB] 트랜잭션 (Transaction)
2023년 02월 25일
[Docker] Dockerfile의 작성 방법에 대해 알아보자.
2023년 02월 11일
[Docker] 도커 이미지
2023년 02월 10일
[Docker] 도커 컴포즈 (Docker Compose) 명령어에 대해 알아보자
2023년 02월 04일
[Docker] 도커 컴포즈 (Docker Compose)란?
2023년 02월 04일
[Docker] 도커 기본 명령어 (3) - volume
2023년 02월 01일
[Docker] 도커 기본 명령어 (2) - ps, stop, rm..
2023년 01월 25일
[Docker] 도커 기본 명령어 (1) - run, exec
2023년 01월 22일
[Docker] 도커 실행하기
2023년 01월 22일
[Docker] 도커란 무엇인가?
2023년 01월 15일
[Refactoring] 냄새 24. 주석
2023년 01월 14일
[Refactoring] 냄새 23. 상속 포기
2023년 01월 14일
[Refactoring] 냄새 22. 데이터 클래스
2023년 01월 14일
[Refactoring] 냄새 21. 서로 다른 인터페이스의 대안 클래스들
2023년 01월 13일
[Refactoring] 냄새 20. 거대한 클래스
2023년 01월 10일
[Refactoring] 냄새 19. 내부자 거래
2023년 01월 09일
[Refactoring] 냄새 18. 중재자
2023년 01월 08일
[Refactoring] 냄새 17. 메시지 체인
2023년 01월 08일
[Refactoring] 냄새 16. 임시 필드
2023년 01월 07일
[Refactoring] 냄새 15. 추측성 일반화
2023년 01월 07일
[Refactoring] 냄새 14. 성의없는 요소
2023년 01월 07일
[Refactoring] 냄새 13. 반복문
2023년 01월 07일
[Refactoring] 냄새 12. 반복되는 switch 문
2023년 01월 07일
[Refactoring] 냄새 11. 기본형 집착 (2)
2023년 01월 05일
[Refactoring] 냄새 11. 기본형 집착 (1)
2023년 01월 03일
2022
[Refactoring] 냄새 10. 데이터 뭉치
2022년 12월 29일
[Refactoring] 냄새 9. 기능 편애
2022년 12월 28일
[Java] Hikari CP에 대해 알아보자. (3)
2022년 12월 22일
[Java] HikariCP DB ConnectionTimeout에 대한 Troubleshooting
2022년 12월 20일
[Java] Hikari CP에 대해 알아보자. (2)
2022년 12월 19일
[Java] Hikari CP에 대해 알아보자. (1)
2022년 12월 17일
[Refactoring] 냄새 8. 산탄총 수술
2022년 12월 13일
[Refactoring] 냄새 7. 뒤엉킨 변경
2022년 10월 29일
[Refactoring] 냄새 6. 가변 데이터 (2)
2022년 10월 06일
[Refactoring] 냄새 6. 가변 데이터 (1)
2022년 10월 05일
[Refactoring] 냄새 5. 전역 데이터
2022년 09월 30일
[Refactoring] 냄새 4. 긴 매개변수 목록
2022년 09월 29일
[Refactoring] 냄새 3. 긴 함수 (3)
2022년 09월 28일
[Refactoring] 냄새 3. 긴 함수 (2)
2022년 09월 20일
[Refactoring] 냄새 3. 긴 함수 (1)
2022년 09월 20일
[Refactoring] 냄새 2. 중복 코드
2022년 09월 19일
[Refactoring] 냄새 1. 이해하기 힘든 이름
2022년 09월 17일
[JPA] JPQL - 벌크연산
2022년 09월 12일
[JPA] JPQL - 페치 조인2 - 한계
2022년 09월 06일
[Java] Feign Client에서 페이징 처리하기
2022년 09월 03일
[JPA] JPA 다중 DB 사용 설정
2022년 09월 02일
[CleanCode] 01. 의미있는 이름을 지어라
2022년 09월 01일
[JPA] JPQL - 페치 조인1 - 기본
2022년 08월 31일
[JPA] JPQL - 경로 표현식
2022년 08월 24일
[JPA] JPQL - JPQL 함수
2022년 08월 20일
[JPA] JPQL - 조건식
2022년 08월 20일
[JPA] JPQL - JPQL 타입 표현과 기타식
2022년 08월 19일
[JPA] JPQL - 서브쿼리
2022년 08월 18일
[JPA] JPQL - 조인
2022년 08월 17일
[JPA] JPQL - 페이징
2022년 08월 13일
[JPA] JPQL - 프로젝션
2022년 08월 12일
[JPA] JPQL - 기본 문법과 기능
2022년 08월 11일
[JPA] 객체지향 쿼리 언어 기본 문법 소개
2022년 08월 05일
[JPA] 값 타입의 컬렉션
2022년 07월 24일
[JPA] 값 타입의 비교
2022년 07월 23일
[JPA] 값 타입(2)
2022년 07월 22일
[JPA] 값 타입(1)
2022년 07월 21일
[JPA] 영속성 전이(CASCADE)와 고아 객체
2022년 07월 20일
[JPA] 즉시 로딩과 지연 로딩
2022년 07월 17일
[JPA] 프록시
2022년 07월 17일
[JPA] @MappedSuperclass
2022년 07월 15일
[JPA] 고급 매핑
2022년 07월 13일
[JPA] A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance
2022년 07월 12일
[JPA] 다양한 연관관계 매핑 (3)
2022년 07월 11일
[JPA] 다양한 연관관계 매핑 (2)
2022년 07월 06일
[JPA] 다양한 연관관계 매핑 (1)
2022년 06월 28일
[JPA] 양방향 연관관계 (2) - 양방향 매핑 주의사항
2022년 06월 26일
[JPA] 양방향 연관관계 (1)
2022년 06월 23일
[JPA] 단방향 연관관계
2022년 06월 22일
[JPA] 기본키 매핑
2022년 06월 16일
[JPA] 필드와 컬럼 매핑
2022년 06월 15일
[JPA] 데이터베이스 스키마 자동생성
2022년 06월 14일
[JPA] @Entity
2022년 06월 13일
[JPA] 준영속
2022년 06월 09일
[JPA] 플러시
2022년 06월 09일
[JPA] 영속성 컨텍스트의 이점
2022년 06월 08일
[JPA] 영속성 컨텍스트
2022년 06월 07일
[JPA] JPA의 간단한 예시
2022년 06월 06일
[JPA] JPA의 개요
2022년 06월 03일
[JPA] SQL 중심적인 개발의 문제점
2022년 06월 01일
[EffectiveJava] item19 - 상속을 고려해 설계하고 문서화하라. 그러지않았다면 상속을 금지하라
2022년 05월 24일
[DesignPattern] 팩토리 메서드 (Factory Method)
2022년 05월 24일
[EffectiveJava] item18 - 상속보다는 컴포지션을 사용하라
2022년 05월 22일
[Java] 상속 (Is-A)과 컴포지션 (Has-A)
2022년 05월 20일
[EffectiveJava] item17 - 변경 가능성을 최소화하라
2022년 05월 19일
[EffectiveJava] item16 - public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라.
2022년 05월 17일
[EffectiveJava] item15 - 클래스와 멤버의 접근 권한을 최소화 하라.
2022년 05월 12일
[EffectiveJava] item14 - Comparable을 구현할지 고려하라.
2022년 05월 11일
[EffectiveJava] item13 - clone 재정의는 주의해서 진행하라.
2022년 05월 09일
[DesignPattern] 빌더 (Builder)
2022년 05월 04일
[Gold5] No.18405 경쟁적 전염
2022년 04월 28일
[EffectiveJava] item12 - toString을 항상 재정의하라.
2022년 04월 28일
[Gold5] No.15686 치킨배달
2022년 04월 27일
[EffectiveJava] item11 - equals를 재정의하려거든 hashCode도 재정의하라.
2022년 04월 27일
[Gold5] No.07576 토마토
2022년 04월 25일
[EffectiveJava] item10 - equals는 일반 규약을 지켜 재정의하라.
2022년 04월 25일
[DesignPattern] 추상 팩토리 (ABSTRACT FACTORY)
2022년 04월 22일
[Silver1] No.01697 숨바꼭질
2022년 04월 21일
[Silver1] No.16953 A -> B
2022년 04월 20일
[EffectiveJava] item09 - try-finally보다는 try-with-resources를 사용하라.
2022년 04월 20일
[Git] Git 메시지 컨벤션이란?
2022년 04월 19일
[EffectiveJava] item08 - finalizer와 cleaner 사용을 피해라.
2022년 04월 19일
[EffectiveJava] item07 - 다 쓴 객체 참조를 해제하라.
2022년 04월 18일
[EffectiveJava] item06 - 불필요한 객체 생성을 피하라.
2022년 04월 16일
[Silver1] No.02667 단지번호붙이기
2022년 04월 15일
[Silver1] No.02468 안전 영역
2022년 04월 15일
[Silver3] No.01072 게임
2022년 04월 14일
[EffectiveJava] item05 - 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라.
2022년 04월 14일
[EffectiveJava] item04 - 인스턴스화를 막거든 private 생성자를 사용하라.
2022년 04월 13일
[Silver4] No.01021 회전하는 큐
2022년 04월 12일
[EffectiveJava] item03 - private 생성자나 열거(enum) 타입으로 싱글턴임을 보증하라.
2022년 04월 11일
[EffectiveJava] item02 - 생성자에 매개변수가 많다면 빌더를 고려하라.
2022년 04월 10일
[Silver5] No.01475 방 번호
2022년 04월 08일
[EffectiveJava] item01 - 생성자 대신 정적 팩터리 메서드를 고려하라.
2022년 04월 08일
[Silver3] No.14425 문자열 집합
2022년 03월 30일
[Level2] 문자열 압축
2022년 03월 29일
[Level3] 다단계 칫솔 판매
2022년 03월 25일
[Level1] 신고 결과 받기 for Kakao
2022년 03월 20일
[Level1] 신규 아이디 추천 for Kakao
2022년 03월 20일
Osi 7 Layer
2022년 03월 19일
[Silver3] No.09372 상근이의 여행
2022년 03월 19일
[Silver3] No.17413 단어 뒤집기2
2022년 03월 17일
[Silver4] No.01920 수찾기
2022년 03월 15일
[Theory] Binary Search Tree
2022년 03월 11일
[Theory] Tree
2022년 03월 09일
[Bronze2] No.02292 벌집
2022년 03월 08일
[Silver3] No.01966 프린터 큐
2022년 03월 03일
[Java] 의존성_우아한테크세미나-190620-우아한객체지향 (2)
2022년 03월 02일
[Silver4] No.10828 스택
2022년 03월 01일
[Gold5] No.02493 탑
2022년 03월 01일
[Silver4] No.01978 소수찾기
2022년 03월 01일
[Theory] Search
2022년 02월 25일
[Level2] 기능개발
2022년 02월 24일
[Theory] LinkedList
2022년 02월 24일
[Theory] Queue
2022년 02월 23일
[Theory] Stack
2022년 02월 22일
[Java] 의존성_우아한테크세미나-190620-우아한객체지향 (1)
2022년 02월 19일
[Security] 암호화 알고리즘
2022년 02월 17일
[Level2] 다리를 지나가는 트럭
2022년 02월 16일
[Level1] 두 정수 사이의 합
2022년 02월 16일
[Level1] 수박수박수박수박수?
2022년 02월 16일
[Level1] 이상한 문자 만들기
2022년 02월 16일
[Level1] 문자열 내 마음대로 정렬하기
2022년 02월 16일
[Level1] 자연수 뒤집어 배열 만들기
2022년 02월 16일
[Level1] 문자열을 숫자로 바꾸기
2022년 02월 16일
[Level1] 직사각형 별찍기
2022년 02월 16일
[Level1] 문자열내의 p와 y의 개수
2022년 02월 16일
[Level1] 같은 숫자는 싫어
2022년 02월 16일
[Level1] 모의고사
2022년 02월 16일
[Level2] 최대값과 최소값
2022년 02월 16일
[Level1] 로또
2022년 02월 16일
[Level1] K번째 수
2022년 02월 16일
[Level1] 핸드폰 번호 가리기
2022년 02월 16일
[Level1] 하샤드 수
2022년 02월 16일
[Level1] 가운데 글자 가져오기
2022년 02월 16일
[Level1] 소수 찾기
2022년 02월 16일
[Level1] 서울에서 김서방 찾기
2022년 02월 16일
[Level1] 실패율
2022년 02월 16일
[Level1] 나누어 떨어지는 숫자
2022년 02월 16일
[Level1] 콜라츠 추측
2022년 02월 16일
[Level1] 시저암호
2022년 02월 16일
[Level1] 예산
2022년 02월 16일
[Level1] 문자열 다루기 기본
2022년 02월 16일
[Level1] 문자열 내림차순으로 정렬하기
2022년 02월 16일
[Level1] 완주하지 못한 선수
2022년 02월 16일
[Level1] 자릿수 더하기
2022년 02월 16일
[Level1] 비밀지도
2022년 02월 16일
[Level1] 2016년
2022년 02월 16일
[Java] Linux와 Window의 엔터값(개행문자)으로 인한 트러블 슈팅
2022년 02월 16일
[Theory] 에라토스테네스의 체
2022년 02월 15일
[Java] printf를 쓰는 이유
2022년 02월 15일
[Java] String Class에 대해서
2022년 02월 15일