전체 글
-
[Spring] OSIV 란?Spring JPA 2024. 5. 24. 15:10
영속성 컨텍스트를 뷰까지 열어두는 기능뷰에서도 지연 로딩이 가능하도록 하는 것컨트롤러 계층에서도 데이터를 변경할 수 있다스프링에서는 defualt로 OSIV 값이 true로 설정 되어 있다영속성 컨텍스트 : 엔티티를 영구 저장하는 환경이라는 뜻, 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 함 동작 방식요청이 들어오면 서블릿 필터나, 스프링 인터셉터에서 영속성 컨텍스트를 생성한다서비스 계층에서 @Transactional으로 트랜잭션을 시작하게 되면 전에 생성한 영속성 컨텍스트를 찾아온다서비스 계층이 끝나고 반환하면 트랜잭션을 커밋하고 영속성 컨텍스트를 flush 한다 이때 트랜잭션은 끝나지만 영속성 컨텍스트는 끝내지 않는다컨트롤러와 뷰까지 영속성 컨텍스트가 유지되므..
-
[데이터베이스] 정규화? 비정규화? (Normalization & De-normalization)데이터베이스 2024. 5. 24. 14:43
정규화 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정테이블 간에 중복되는 데이터를 허용하지 않는다는 것중복된 데이터를 허용하지 않음으로써 무결성을 유지할 수 있다 릴레이션 : 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위이다. 결국, 릴레이션은 DB 테이블이다.무결성 : 데이터의 정확성, 일관성, 유효성이 유지 되는 것을 의미이상현상 : 테이블을 설계할때 잘못 설계하여 데이터를 삽입, 삭제, 수정할 때 논리적으로 생기는 오류 (삽입 이상, 갱신 이상, 삭제 이상) 장점 데이터베이스 변경 할때 이상현상을 제거 할 수 있음정규화된 데이터베이스에서는 새로운 데이터 형의 추가로 인한 확장 시 그 구조를 변경하지 않아도 되거나 일부만 변경해도 된다 단점 릴레이션을 나눔으로써 릴레이션 ..
-
[백준] 2606 바이러스 - Java알고리즘 문제 풀이 2024. 5. 23. 13:49
문제 - 바이러스https://www.acmicpc.net/problem/2606 접근 방법 이 문제는 그래프 완전 탐색 문제이다너비 우선 탐색(BFS), 깊이 우선 탐색(DFS) 둘중에 한개를 활용하여 풀 수 있는 문제이다코드 작성 (BFS)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;import java.util.StringTokenizer;public class Main { static int ..
-
[백준] 5568 카드 놓기 - Java알고리즘 문제 풀이 2024. 5. 22. 16:08
문제 - 카드 놓기https://www.acmicpc.net/problem/5568 접근 방법 - 이 문제는 dfs 문제이다 dfs 방식으로 정수를 만든다- 자료구조는 set를 사용할 것이다 이유는 dfs방식으로 정수를 만든것을 set 자료구조에 저장할 것인데 set의 특성상 중복 된 것을 처리해줄 수 있기 때문이다 - 다른 자료구조를 사용할 경우 중복을 추가적으로 제거해줘야 하는 불편함이 있다 코드 작성import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.HashSet;import java.util.Set;public class Main { static in..
-
[묘공단] 코딩 테스트 합격자 되기 5주차[묘공단] 코딩 테스트 합격자 되기 책 정리 2024. 5. 22. 00:29
이 글은 책 코딩테스트 합격자 되기 - 자바편 (골든래빗 - 김희성저)의 내용이 포함되어있습니다. 집합 개념순서와 중복이 없는 원소들을 갖는 자료구조상호 배타적 집합(교집합이 없는 집합 관계)상호 배타적 집합 특성을 활용하는 분야이미지 분할 : 서로 다른 부분으로 나누는 데 사용도로 네트워크 구성: 각 도로가 교차하지 않도록 설계-> 교차로 혼잡을 줄임최소 신장 트리 알고리즘 구현 -> 간선을 추가할 때마다 사이클을 형성하는지 여부게임 개발: 캐릭터 동작을 자연스럽게 구현 ex) 두 캐릭터가 겹치지 않도록 함클러스터링 작업 -> 각 작업이 서로 겹치지 않도록 구성 할 수 있다 연산 유니온 - 파인드 알고리즘 집합 알고리즘에 주로 쓰이는 연산은 합치기와 탐색이다합치기 -> 유니온 union탐색 -> 파인..
-
[백준] 11047 동전 0 - Java알고리즘 문제 풀이 2024. 5. 21. 15:28
문제 - 동전 0https://www.acmicpc.net/problem/11047 접근 방법 이 문제는 그리디로 풀 수 있다주어진 동전을 최소로 하여 K를 만들려고 한다 그럼 제일 큰 동전 부터 해서 K가 되게 만들면 될 것 같다동전 목록들을 자료구조에 넣고 내림 차순으로 정렬 해서 풀면 될 것 같다 나는 자료구조를 우선순위 큐를 사용했는데 (요즘 우선순위 큐에 맛들렸다)사용한 이유는 우선순위 큐까지 사용해서 풀 문제는 아니지만 만약 배열이나 list를 사용하면 내림차순으로 정렬을 해줘야 한다 하지만 우선순위큐를 사용하면 큐에서 데이터를 뺄때 정렬이 된 상태로 데이터가 출력이 되기 때문이다코드 작성(우선순위 큐를 사용했을때)import java.io.BufferedReader;import java...
-
[SWEA] 1249 보급로 - Java알고리즘 문제 풀이 2024. 5. 21. 01:38
문제 - 보급로https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=4&contestProbId=AV15QRX6APsCFAYD&categoryId=AV15QRX6APsCFAYD&categoryType=CODE&problemTitle=&orderBy=RECOMMEND_COUNT&selectCodeLang=ALL&select-1=4&pageSize=10&pageIndex=1 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 접근 방법 - 이 문제는 2차원 배열 문제이고 bfs 문제이다 0,0 을 시작으로 n,n 끝까지 가는 길에 최소의 ..
-
[운영체제] PCB는 어떤 녀석일까?운영체제 2024. 5. 17. 15:27
PCB는 Process Control Block의 약자로 운영체제에서 *프로세스에 대한 *메타데이터를 저장한 데이터를 말한다즉, 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 곳 *프로세스 : Process란 일을 처리하는 과정이나 순서*메타데이터 : Metadata는 일반적으로 데이터에 관한 구조화된 데이터, 데이터를 설명하는 작은 데이터, 대량의 정보 가운데에서 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 일정한 규칙에 따라 콘텐츠에 대해 부여되는 데이터이다 프로세스 제어 블록이라고도 한다프로세스가 생성되면 운영체제는 해당 PCB를 생성한다프로세스가 완료되면 PCB는 제거된다운영 체제에서 특정 프로세스를 나타내는 데 사용된다각 프로세스는 운영 체제에서 PCB로 축약되는 프로세스 제어 블..