java49 JPA에서 Enum 활용 방법 (ORDINAL vs STRING 등) 이전에 다뤘던 Enum의 객체지향적 활용방법https://record47584.tistory.com/81 Enum의 객체 지향적 활용 방법Enum 이란?서로 관련된 상수들의 집합을 타입으로 정의한 것단순 static final 상수보다 타입 안정성이 높음 (컴파일 타임에 오타나 잘못된 값을 방지)작성 예시public enum ProductStatus{ FOR_SALE, // 판매 중record47584.tistory.com Enum을 DB 컬럼에 매핑하는 이유문자열로 상태를 관리하는 경우, 오타나 정합성 문제가 발생할 수 있음타입 안정성 확보 @Enumerate 전략 선택 - ORDINAL vs STRINGJPA에서 Enum 필드를 DB 컬럼에 매핑할 때는 @Enumerated 어노테이션을 붙여야 한.. 2026. 7. 21. Enum의 객체 지향적 활용 방법 Enum 이란?서로 관련된 상수들의 집합을 타입으로 정의한 것단순 static final 상수보다 타입 안정성이 높음 (컴파일 타임에 오타나 잘못된 값을 방지)작성 예시public enum ProductStatus{ FOR_SALE, // 판매 중 OUT_OF_STOCK, // 품절 DISCONTINUED, // 단종 DELETED; // 관리자에 의해 삭제됨} 객체 지향적 활용 방법1. 상태에 따른 판단을 스스로 한다.안티 패턴public enum ProductStatus{ FOR_SALE, // 판매 중 OUT_OF_STOCK, // 품절 DISCONTINUED, // 단종 DELETED; // 관리자에 의해 삭제됨}/*주문 재고 차감*/public voi.. 2026. 7. 21. SOLID 원칙 SOLID 원칙이란?시간이 지나도 유지보수와 확장이 쉬운, 이해하기 편하고 유연한 소프트웨어를 만들기 위한 다섯 가지 객체 지향 설계 원칙의 모음 Single Responsibility Principle(단일 책임 원칙)클래스는 단 하나의 책임만을 가져야 한다. ▼잘못된 코드더보기// 너무 많은 책임을 가진 클래스public class Employee { private String name; private double salary; // 책임 1: 직원 정보 관리 public void setName(String name) { this.name = name; } // 책임 2: 급여 계산 public double calculatePay().. 2026. 7. 14. 두 큐 합 같게 만들기 (투 포인터) 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 더보기 문제 풀이 큐 두 개로 투포인터를 구현하는 예제 같은 문제이다. 다른 알고리즘을 생각할 필요 없이 문제에서 제시하는 프로세스를 코드로 구현하면 된다. 라고 했지만 몇몇 테스트 케이스에서 시간 초과가 뜨고말았다. 구현한 코드가 O(N)이라고 생각했는데, 처음에는 queue1의 배열이 원래와 같은 배열로 돌아오면 -1을 리턴하게 만들었는데, 몇몇 테스트 케이스에서 무한 루프가 발생했다.시간 초과 테스트 케이스q1: [10, 5, 1]q.. 2026. 7. 2. BFS(너비 우선 탐색) BFS(너비 우선 탐색)란? 그래프나 트리에서 시작 노드로부터 가까운 노드를 먼저 방문하고 멀리 떨어진 노드를 나중에 방문하는 알고리즘주로 큐를 이용해 구현 특징최단 경로 보장 : 가중치가 없는 그래프에서 최단 경로를 찾을 수 있음큐 사용 : FIFO 방식의 큐를 사용하여 방문 순서 관리활용 예시최단 경로 찾기 : 가중치 없는 그래프에서 두 노드 간의 최단 경로 탐색레벨 순서 탐색 : 트리나 그래프의 각 레벨을 순차적으로 방문브로드캐스트 알고리즘 : 네트워크 내 모든 노드에 메시지 전달퍼즐 및 게임 상태 탐색 : 미로 찾기, 퍼즐 해결 등 단계별 상태 탐색 구현 방법1. 시작 노드를 큐에 넣고 방문 처리합니다. 2. 큐에서 노드를 꺼내고: 2.1 해당 노드의 인접 노드 중 방문하지 않은 노드를 모.. 2026. 7. 1. 투 포인터 (Two Pointers) 투 포인터 (Two Pointers) 란?리스트에 순차적으로 접근해야 할 때, 두 개의 점의 위치를 기록하면서 처리하는 알고리즘완전 탐색으로 시간 복잡도 O(N^2) 걸릴 작업을 O(N)으로 줄여주는 효율적인 알고리즘 언제 사용되는가?연속된 부분 배열의 합/곱을 구해야 할 때정렬된 배열에서 특정 조건을 만족하는 두 수의 쌍을 찾을 때병합 정렬처럼 두 개의 리스트를 합칠 때 예시 문제 풀이 : https://record47584.tistory.com/61 연속된 부분 수열의 합 (투포인터)문제 : https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을.. 2026. 7. 1. 이전 1 2 3 4 5 6 ··· 9 다음