전체 글 563

다대일 N:1 / 일대다 1:N

연관관계 매핑시 고려사항 3가지 다대일[N:1] 일대다[1:N] 일대일[1:1] 다대다[N:M] 다양한 연관관계 매핑 단방향, 양방향 테이블 외래 키 하나로 양쪽 조인 가능 객체 참조용 필드가 있는 쪽으로만 참조 가능 한쪽만 참조하면 단방향 양쪽이 서로 참조하면 양방향 연관관계의 주인 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 객체 양방향 관계는 A -> B, B->A 처럼 참조가 2군데 객체 양방향 관계는 참조가 2군데 있음. 둘중 테이블의 외래 키를 관리할 곳을 지정해야 함 연관관계의 주인: 외래 키를 관리하는 참조 주인의 반대편: 외래 키에 영향을 주지 않음, 단순 조회만 가능 다대일(N:1)부터 보자. 외래키가 있는 곳에 참조를 걸고 매핑을 하면되는 그림이다. 다대일 단방향 관계는 아래..

Spring/JPA 2022.05.25

예제 - 연관관계 매핑 시작

연관관계 매핑의 객체 구조는 이렇다. MEMBER와 ORDER와의 관계에서는 MEMBER_ID만(FK) 잘 매핑해주면 된다. 연관관계 매핑을 해주자. @Entity @Table(name = "ORDERS") public class Order { @Id @GeneratedValue @Column(name = "ORDER_ID") private Long id; // @Column(name = "MEMBER_ID") // private Long memberId; @ManyToOne @JoinColumn(name = "MEMBER_ID") private Member member; private LocalDateTime orderDate; @Enumerated(EnumType.STRING) private Orde..

Spring/JPA 2022.05.25

프로그래머스 JadenCase 문자열 만들기

capitalize 내장함수 사용이 중요! def solution(s): answer = '' words = s.split(' ') for i in range(len(words)): words[i] = words[i].capitalize() answer = ' '.join(words) return answer https://programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고 programmers.co.kr 참고: htt..

스택 & 큐 / 정렬

기능개발 참고: https://huidea.tistory.com/15 count time 설정 첫번째가 100이 될 때까지 loop 돌면서 time 늘린다. else => time + 1 time = 7이 되면 첫번째 값 100이 되어서 if에 따라 pop되고 count += 1 현재 time이 7이기 때문에 두번째 값도 if에 따라 pop되고 count += 1 세번째 값은 100이 안된다 => loop 돌고 time 늘림 그 전에 완성된 애들 count에서 꺼내서 출시해줘야함 answer에 append하고 count 초기화 loop 돌면서 time 늘림 세번째 값 100 넘으면 count += 1 해주고 count 다시한번 answer 리스트에 append 해줌 => 마지막 제품 출시 프린터 참고: ..

양방향 연관관계와 연관관계의 주인

아래 코드를 보게 되면 member에서 Team으로는 갈 수 있다. 반대로 team에서 getMember()는 안된다. 일단 왔다갔다 참조는 할 수 있다. => 양방향 연관관계 // ex1-hello-jpa / hellojpa / JpaMain // 저장 Team team = new Team(); team.setName("TeamA"); em.persist(team); Member member = new Member(); member.setUsername("member1"); // 이렇게 해주면 JPA가 알아서 PK값을 team에서 꺼내서 FK값에 insert해준다. member.setTeam(team); em.persist(member); em.flush(); em.clear(); Member find..

Spring/JPA 2022.05.08

프로그래머스 없어진 기록 찾기

참고: https://programmers.co.kr/learn/courses/30/lessons/59042 코딩테스트 연습 - 없어진 기록 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr ANIMAL_OUTS를 A로 잡고 ANIMAL_OUTS에는 ID가 있지만 ANIMAL_INS에는 없는 걸 찾으면 된다. SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_OUTS A LEFT JOIN ANIMAL_INS B O..

SQL(MySQL) 2022.05.08

그래프 & 이진 탐색

코딩테스트 연습 문제 티스토리 참고 가장 먼 노드 https://jiwon-coding.tistory.com/112 [프로그래머스] 가장 먼 노드 / 파이썬(python) # 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr # Soultion BFS를 이.. jiwon-coding.tistory.com https://soohyun6879.tistory.com/183 [프로그래머스/Python] 가장 먼 노드 - Level3 https://programmers.co.kr..

DispatcherServlet & ApplicationContext & 응답(Response)하는 방법

tistory 참고하면서 공부하자. FrontController 패턴 최초 앞단에서 request 요청을 받아서 필요한 클래스에 넘겨준다. 왜? web.xml에 다 정의하기가 힘들어서 이때 새로운 요청이 생기기 때문에 request와 response가 새롭게 new가 될 수 있다. 아래의 RequestDispatcher가 필요함. 기존의 있는 request와 response를 지우지 않고 그대로 들고와서 다시 요청을 하는 방법이 있다. => RequestDispatcher RequestDispatcher 필요한 클래스 요청이 도달했을 때 FrontController에 도착한 request와 response를 그대로 유지시켜준다. 결론적으로 RequestDispatcher을 이용해야 데이터를 들고 페이지..

Spring/SpringBoot 2022.05.06

서블릿 객체의 생명주기 & web.xml

서블릿 컨테이너(톰캣) 톰캣은 자바 코드를 통해 최초의 요청을 받을 때 스레드를 받는다. -> 서블릿 객체를 만든다.(필요한 데이터 가져옴) 스레드는 동시접근을 허용하게 해준다. 스프링은 클라이언트가 요청을 했을 때 서블릿 컨테이너가 동작을 무조건 한다. (URI 요청을 하기 때문에) 최초 요청이 오면 메모리 로딩을 해서 서블릿 객체를 하나 만들고 실행을 한다. 그리고 스레드가 20개이면 두번째 요청부터 스무번째 요청까지 쭉 요청이 되고 21번째 부터 no가 요청이 될 것이다. 그리고 마지막으로 최종적으로 만들어지는 것이 Request 객체와 Response 객체이다.(톰캣이 들고 있는 객체) web은 Request와 Response의 여행이다. Request와 Response가 종료가 되면 여행은 끝나..

Spring/SpringBoot 2022.05.06

Tomcat

웹서버 Tomcat 아파치는 요청한 파일을 응답해주는 것이다. 톰캣은 요청한 파일중에 자바파일 코드가 요청이 되면 그걸 컴파일해서 html 파일로 번역해서 돌려주는 애가 톰캣이다. response 할 때는(요청할 때) 보통 웹 브라우저로 요청을 하는데 .JSP 파일을 찾아서 돌려주기만 하면 웹서버이다. 대신에 웹 브라우저는 html css js 를 모두 세가지(동영상 파일 ex) avi )를 받는다. https://www.youtube.com/watch?v=fBcL6hPckyA&list=PL93mKxaRDidG_OIfRQ4nztPQ13y74lCYg&index=9

Spring/SpringBoot 2022.05.06