반응형

전체보기 160

[JPA]영속성 관리 : 내부 동작 방식

목차 영속성 컨텍스트? 영속성 컨텍스트는 논리적인 개념이다. 엔티티매니저를 통해서 영속성 컨텍스트에 접근한다. - J2EE 같은 환경 엔티티매니저와 영속성 컨텍스트가 1:1 관계. 엔티티매니저 안에 영속성 컨텍스트가 1개 있다. - 스프링 프레임워크 같은 컨테이너 환경 엔티티매니저와 영속성 컨텍스트가 1:N 관계. 여러 엔티티매니저를 통해 1개의 영속성 컨텍스트에 접근한다. 영속성 컨텍스트 구조 1. Map형태의 1차 캐시 공간 : transaction.commit()전까지 값을 모아놓는다. 2. 쓰기지연 SQL저장소 : transaction.commit()전까지 SQL문들을 모아놓는다. em.persist(memberA) 하면 - insert SQL문을 쓰기지연 SQL저장소에 저장하고, - member..

Backend 2022.02.21

[JPA] 연관관계 매핑

목차 목표 : "객체의 참조와 테이블의 외래키를 매핑" 시나리오 - 회원과 팀은 다대일 관계이다. - N명의 회원은 1개의 팀에 소속될 수 있다. - 1개의 팀은 N명의 회원을 가질 수 있다. 객체를 테이블에 맞추어 모델링 : 외래키를 그대로 객체에 구현 Team team = new Team(); team.setName("TeamA"); em.persist(team); Member member = new Member(); member.setName("member1"); member.setTeamId(team.getId());//⭐⭐⭐ 식별자 저장 em.persist(member); Member findMember = em.find(Member.class, member.getId()); Team findT..

Backend 2022.02.20

SpringBoot, MariaDB 프로젝트 AWS 배포하기 총정리(3)❗

SpringBoot, MariaDB 프로젝트 AWS 배포하기 총정리(1)❗ 1. 프리티어 가격확인 2. EC2 (서버)생성하기 3. 예산 설정하기(AWS Budgets) 4. IP 고정하기 (탄력적 IP, Elastic IP) SpringBoot, MariaDB 프로젝트 AWS 배포하기 총정리(2)❗ 5. Putty 설치 및 접속 6. Open JDK11 설치 및 환경변수 설정 7. MariaDB 설치 8. HeidiSQL로 EC2의 데이터베이스 원격 접속하기 SpringBoot, MariaDB 프로젝트 AWS 배포하기 총정리(3)❗

Infra 2022.02.19

SpringBoot, MariaDB 프로젝트 AWS 배포하기 총정리(2)❗

SpringBoot, MariaDB 프로젝트 AWS 배포하기 총정리(1)❗ 1. 프리티어 가격확인 2. EC2 (서버)생성하기 3. 예산 설정하기(AWS Budgets) 4. IP 고정하기 (탄력적 IP, Elastic IP) SpringBoot, MariaDB 프로젝트 AWS 배포하기 총정리(2)❗ session > hostname에 붙여넣는다. port는 22, SSH에 선택되어야한다. 5-10. putty > connection > ssh > auth 접속 pem을 ppk로 바꾼 파일 등록한 후 open 클릭 5-11. accept 클릭 5-12. 접속 완료! ls -al 입력하면 아래와 비슷하게 나온다. 6. Open JDK11 설치 및 환경변수 설정 sudo는 일반 사용자가 root 권한을 빌려..

Infra 2022.02.18

프로세스? 스레드?

목차 프로세스? "현재 실행중인" 프로그램 단일 프로세스 : 한번에 하나의 프로그램만 실행된다. 단점 : 크롬을 사용하다가 카카오톡을 사용하려면 크롬을 종료해야한다. 멀티 프로세스 : 여러 프로그램을 번갈아가면서 처리하자 (시간제한 없음, 아직은 동시처리 아님) 여러 프로그램을 메모리에 올려서 동시에 사용할 수 있도록 하였다. 아무래도 CPU의 처리속도가 빠르다보니 번갈아가면서 처리하는 것이 우리 눈에는 "동시에" 처리되는 것으로 보이지만 실제로 "동시에"는 아니다! 단일 프로세스의 단점(크롬을 사용하다가 카카오톡을 사용하려면 크롬을 종료해야한다)을 개선했다. 멀티 프로세스의 단점 : 앞선 프로세스의 CPU사용시간이 길어지면 다른 프로세스는 계속 대기해야한다.. 멀티태스킹 : 여러 프로그램을 번갈아가면서..

Computer Science 2022.02.17

동적계획법 DP 구현방법 ( + [백준] 11050 이항계수 문제풀이)

11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net + 이항계수? 경우의 수를 계산할 때 사용한다. 결론부터 말하면 아래와 같이 팩토리얼로 계산할 수 있다. 팩토리얼 재귀함수로 풀어보기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = ne..

Computer Science 2022.02.13

[백준] 1697 숨바꼭질 1차원 BFS

https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제풀이 1차원 BFS이다. 2차원 BFS의 check 변수를 node로 사용한다. 제출코드 package baekjoon; import java.io.IOException; import java.util.*; public class Main1697 { static int length = 100000; static int[] node = new int[length+1];..

Coding Test 2022.02.12

DFS, BFS 구현방법 ( + [백준] 2606 바이러스 문제풀이)

https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net DFS (Depth-First Search) DFS는 깊이 우선 탐색이다. 아래 그림처럼 한 곳만 깊게~ 계속 파다가 끝이 나오면, 다른 곳으로 가서 다시 깊게~ 계속 파는 것이다. - 단순 검색은 BFS보다 느리다 - 모든 곳을 방문할 때 자주 사용된다. - 재귀함수를 사용하여 다음 탐색 노드(현재 노드와 인접하고, 방문한 적이 없는 노드)로 이동한다. BFS (Breadth-First Search)..

Computer Science 2022.02.12

[백준] 1966 프린터 큐 + 테스트케이스

https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제풀이 //중요도에 해당하는 문서를 지우기 전까지는 루프돌기 이부분을 처음엔 importmant++로 두었을 때 테스트케이스가 잘 동작되어서 제출했는데 런타임 에러 (ArrayIndexOutOfBounds) 가 발생했다 디버그해보니 9까지인 중요도가 10, 11 로 올라가고있었다 count++로 고치니 잘 돌아간다! package baekjoon; import java.io.BufferedReade..

Coding Test 2022.02.11
반응형