본문 바로가기

분류 전체보기

(115)
N:M(다 대 다) 매핑 4: 양방향 연관관계 편의 메서드 전체코드 github 주소[branch: ManyToManyWithMappingMethod] 참고 강의: 배달의 민족 개발팀장 김영한 강사님의 JPA 강의 2021.05.22 - [JPA/양방향연관관계] - N:M(다 대 다) 매핑 3: 매핑테이블을 엔티티로 만들기 N:M(다 대 다) 매핑 3: 매핑테이블을 엔티티로 만들기 N:M 관계를 풀어낼 때 두 테이블을 엮기 위해 중간에 매핑테이블을 만들어야 한다. 그런데 이 때 매핑테이블을 @JoinTable과 @ManyToMany 어노테이션을 사용하여 만들면, 개발 도중에 발생하는 상황들 code-mania.tistory.com 해당 글은 위 글과 이어지는 내용입니다! package hellojpa; import javax.persistence.EntityMa..
JS와 event loop JS는 어떤 언어인가? JS는 Single threaded language, 싱글 스레드 언어이다. 이게 뜻하는 바는 무엇일까? 이 말을 해석해보면 다음과 같다. 하나의 스레드 = 하나의 콜스택 = 동시에 하나의 코드만 실행가능 JS의 영역 중 call stack은 코드를 실행하는 영역이다. 메서드를 호출하면 call stack에 차례대로 쌓이게 되고, return이 일어나면 stack에서 제거된다. 위 사진을 통해 call stack은 한 번에 하나씩 메서드를 처리하는 것을 알 수 있다. 그렇다면 네트워크 요청[XmlHttpRequest]은 어떻게 처리될까? 지금까지 우리가 배운 대로라면, 요청을 보내고 응답이 올 때까지 기다릴 것이다. 그리고 응답이 와야 다음 코드를 실행할 것이다. 이는 성능을 저하..
원숭이도 읽으면 이해할 수 있는 https2 생활코딩 님의 https 수업을 듣고 복습 및 추후 상기 목적으로 정리한 내용입니다. 제 생각대로 적어놓은 것도 있습니다.. 조심하세요! https://opentutorials.org/course/228/4894 SSL과 암호화 그러면 이번에는 SSL이 무엇인지, 어떻게 사용되는지 알아보겠다. SSL은 데이터 암호화 및 복호화를 위해 사용하며, 암•복호화는 특정 key를 통해서 이루어진다. 이 때 key를 어떻게 사용하냐에 따라서 대칭키와 공개키(비대칭키) 방식 2개로 나눠진다. 대칭키 방식 암호화 및 복호화가 하나의 key를 통해 진행된다. key가 하나이고, 유출될 경우 누구나 암•복호화가 가능하게 된다. 공개키 방식 공개키와 개인키 2개의 key를 사용하는 기법이다. 공개키는 누구에게나 공개되는 k..
원숭이도 읽으면 이해할 수 있는 https1 생활코딩 님의 https 수업을 듣고 복습 및 추후 상기 목적으로 정리한 내용입니다. 제 생각대로 적어놓은 것도 있습니다.. 조심하세요! https://opentutorials.org/course/228/4894 http와 https Http http는 Hypertext transper protocol의 약자이다. 이는 hypertext를 교환하기 위한 프로토콜이다. hypertext 문서 양식 중 대표적으로 html(hypertext markup language)이 있다. http에서는 서버와 클라이언트가 데이터를 암호화하지 않고 주고받는다. 이로 인해 중요한 데이터들이 쉽게 노출되고, 변조될 수 있는데, 이를 보완한 것이 https다! Https https = http + Over Secure Soc..
N:M(다 대 다) 매핑 3: 매핑테이블을 엔티티로 만들기 N:M 관계를 풀어낼 때 두 테이블을 엮기 위해 중간에 매핑테이블을 만들어야 한다. 그런데 이 때 매핑테이블을 @JoinTable과 @ManyToMany 어노테이션을 사용하여 만들면, 개발 도중에 발생하는 상황들에 대해 유연하게 대처하기 힘들어진다. 따라서 돌발상황이 많은 실무에서는 매핑테이블을 엔티티로 승격시키는 것이 좋다. 테이블 구조 Student:Subject는 N:M의 관계를 가지고 있고, 이를 매핑하기 위한 테이블로 StudentSubject를 사용하고 있다. 매핑테이블을 Entity로 사용했을 때의 장점을 살펴보기 위해 StudentSubject에 registrationDate 컬럼을 추가했다. 이번 시간에는 매핑테이블인 StudentSubject를 Entity로 만들어서 사용해볼 것이다! ..
N:M(다 대 다) 매핑 2: @ManyToMany와 @JoinTable 2021.05.20 - [JPA/양방향연관관계] - N:M(다 대 다) 매핑 1: 매핑테이블 N:M(다 대 다) 매핑 1: 매핑테이블 RDB에서는 정규화된 테이블 2개로 N:M 관계를 매핑하는 것이 불가능하다. (정규화란 Table을 아름답게 만드는 과정(?)이다. 정규화에 대해 더 궁금하다면 검색을!!!) 따라서 매핑테이블을 따로 추가 code-mania.tistory.com Entity 설계를 보기 전에 테이블이 어떻게 설계됐는지 여기서 먼저 확인해보자~~~ @ManyToMany와 @JoinTable 이번 글에서는 'N:M(다 대 다) 매핑 1: 매핑테이블'에서 설계했던 테이블을 Entity로 만들어볼 것이다. @ManyToMany와 @JoinTable 어노테이션을 사용해서 N:M 양방향 연관관계를 ..
N:M(다 대 다) 매핑 1: 매핑테이블 RDB에서는 정규화된 테이블 2개로 N:M 관계를 매핑하는 것이 불가능하다. (정규화란 Table을 아름답게 만드는 과정(?)이다. 정규화에 대해 더 궁금하다면 검색을!!!) 따라서 매핑테이블을 따로 추가해서 N:M 관계를 풀어내야 한다. 매핑 테이블 만들어보기 학생이 수강신청을 한다고 해보자. 학생은 여러 과목을 수강신청할 수 있고, 한 과목은 여러 학생에 의해 수강신청될 수도 있다. 여기서 학생은 Student이고 과목은 Subject라고 한다면, Student:Subject = N:M(다 대 다)관계가 성립한다. 하지만 DB에서 테이블 2개로 N:M 관계를 매핑할 수 없다. 그래서 Student, Subject와 더불어 매핑테이블이 추가로 설계된다. 매핑테이블로 StudentSubject이라는 테이..
카펫 programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 풀이 class Solution { public int[] solution(int brown, int yellow) { int tiles = brown + yellow; int[] answer = new int[2]; for(int h = 3; h < brown; h++) { int w = tiles / h; if(yellow == (h - 2) * (w - 2)) { a..