본문 바로가기

전체 글138

[JPA] 영속성 관리, 엔티티 매핑 영속성 컨텍스트영속화된 모든 엔티티들을 추적, 관리하는 공간으로 JPA의 핵심 기능 중 하나이며, 본질적으로 캐싱역할을 수행하는 공간 → Git 맥락에서는 커밋을 수행하기 전에 작업 내역이 위치한 스테이징 영역앱과 DB사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 한다. 영속성 컨텍스트 덕분에 1차 캐시, 동일성 보장, 트랜잭션을 지원하는 쓰기 지연, 변경 감지, 지연 로딩 기능을 사용할 수 있다.영속성 컨텍스트에 저장한 엔티티는 flush 시점에 DB에 반영되는데 일반적으로 transaction을 commit할 때 영속성 컨텍스트가 flush된다. 영속성 컨텍스트가 관리하는 엔티티를 영속 상태의 엔티티라 한다.준영속 상태의 엔티티더는 영속성 컨텍스트의 관리를 받지 못하므로 영속성 컨텍스트가 .. 2024. 8. 30.
[프로그래머스/SQL] 흉부외과 또는 일반외과 의사 목록 출력하기 DATE_FORMATDATE_FORMAT을 잘 쓰는지 물어보는 문제였다.DATE_FORMAT(테이블명, ‘%y-%m-%d’) 처럼 출력 형식을 써주면 잘 출력 된다. SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMDFROM DOCTORWHERE MCDP_CD IN ('CS', 'GS')ORDER BY HIRE_YMD DESC, DR_NAME ASC;%Y : 4자리 연도%y : 2자리 연도%m : 2자리 월 (01-12)%d : 2자리 일 (01-31)%H : 24시간 형식 (00-23)%i : 분 (00-59)%s : 초 (00-59) 2024. 8. 20.
[Java] 빌더 패턴(Builder Pattern)을 왜 사용해야 하는가? 객체를 생성하기 위한 패턴1. 생성자 패턴 2. 정적 메소드 패턴 3. 수정자 패턴 4. 빌더 패턴 왜 빌더 패턴을 사용해야 하는가? 1. 필요한 데이터만 설정 가능User user = new User("찬웅", 27, 100); @NoArgsConstructor @AllArgsConstructor public class User { private String name; private int age; private int iq; public User (String name, int age, int iq) { this.name = name; this.age = age; this.iq = iq; } public static User of(String name, int age, int iq) { return .. 2024. 8. 20.
백트래킹 부수기 N과 M 시리즈 백트래킹불필요한 탐색을 하지 않고, 이전 단계로 돌아와 다른 후보해를 탐색해 나가는 방법.가지치기라고도 하는데, 특정한 조건을 만족하는 경우만 살펴보는 것 입니다. DFSDFS는 가능한 모든 경로를 탐색합니다. 그래서 불필요한 행동들이 발생합니다. 2024. 8. 19.
[백준(BOJ)] 2667번 : 단지번호 붙이기 - Python(파이썬) - (실버1, BFS DFS) 풀이BFS로도 DFS로도 풀 수 있는 문제이다.연결요소 유형이고, 방문했을 때, 방문한 곳을 0으로 바꿔준다는게 핵심이다!지금도 자꾸 함수를 외워서, 그리고 아주조금 생각하면서 풀고 있는데, 흰 종이를 가져와 그래프를 그림과 표로 방문해준 곳을 어떻게 방문표시를 해줄건지 생각하며 풀어보자. BFS로 풀기from collections import dequedx = [0, 0, -1, 1]dy = [-1, 1, 0, 0]def bfs(graph, x, y): queue = deque() queue.append((x, y)) graph[x][y] = 0 cnt = 1 while queue: x, y = queue.popleft() for.. 2024. 8. 18.
[백준] BFS와 DFS 백준 파이썬, 추천 문제, 누구나 쉽게 DFS BFS 이해시키기 BFS DFS이제는 그만 두려워하고, BFS DFS를 완전히 정복해보자. 예시문제는 백준의 BFS와 DFS이다https://www.acmicpc.net/problem/1260 아이디어입력 값 받기그래프 선언DFS/BFS 함수함수 실행 전체코드from collections import dequen, m, v = map(int, input().split())graph = [[False] * (n+1) for _ in range(n+1)]for i in range(m): x, y = map(int, input().split()) graph[x][y] = 1 graph[y][x] = 1# 방문 여부를 담을 리스트visited1 = [False] * (n+1)visited2 = [Fal.. 2024. 8. 17.