본문 바로가기

분류 전체보기

(131)
[우아한테크코스 4기] 3주간의 프리코스 후기 (+ 최종 합격) 우아한테크코스는 우아한형제들 회사에서 진행하는 무료 IT 교육 프로그램입니다. 저는 1기때부터 우아한테크코스를 알고 있었고, 유튜브 채널을 통해서 자주 보면서 우테코의 문화를 동경해 왔는데요. 그러던 제가 4학년 막학기가 되어서야 지원하여 이제 마지막 3주차 미션을 달리고 있습니다. 오늘은 지난 3주간의 과정에 대한 회고를 작성해 보고자 합니다. 왜 우아한테크코스에 지원하게 되었나요? 대부분의 학생분들이 그렇듯이, 저도 4학년이 되어서 취업 준비를 하게 됐습니다. 개발자의 경우 알고리즘, CS, 프로젝트, 언어 등등 어느 정도 표준화된 과목을 깊게 공부하게 되는 것 같습니다. 저도 올해부터 알고리즘 공부와 취업에 관련된 공부를 열심히 하고 있었지만, 막상 취업을 하게 됐을 때 과연 내가 좋은 개발자로 성..
[Java] HashTable 보호되어 있는 글입니다.
Gradle이란 보호되어 있는 글입니다.
[JPA] 연관관계 매핑 연관관계 매핑이란? JPA를 통해 객체의 참조와 테이블의 외래 키를 매핑 용어 이해 방향: 단방향, 양방향 다중성: 다대일, 일대다, 일대일, 다대다 연관관계의 주인: 객체 양방향 연관관계는 주인이 필요(이게 제일 어려움) 간단한 예시와 함께 알아 보겠다. 위와 같은 시나리오에서, 테이블 간에 관계를 먼저 생각해야 한다. 팀과 회원 간에 관계를 생각했을 때, 팀(1):회원(N)으로 이루어질 것이다. 이것을 객체가 테이블에 맞추어 모델링 한다면 이러한 구조로 만들어 질 것이다. 이러한 테이블이 있다는 가정하에, insert를 한다면 Team을 만들고, 멤버를 만든다. 그리고 이 멤버에는 Team의 Id값을 저장하여 insert한다. + 근데 궁금한 점이,, 만약 저렇게 create하면, 디비에도 테이블이 ..
[JPA] 기본 키 매핑 우선 기본키 매핑은 JPA에서는 이러한 모습으로 나타난다. 이에 대한 속성과 어노테이션 등의 개념과 사용법에 대해 알아보자. 직접 할당할 떄에는 @Id만 사용하고, 이때 String으로 할 수도 있긴 하다. 이것 외에 나머지 속성들에 대해서 보겠다. IDENTITY IDENTITY속성은 기본키 생성을 디비에 위임하는 것이다. @GeneratedValue(starategy = Generation.IDENTITY)로 설정해 줄 수 있고, 오라클이면 시퀀스를 생성하고 Mysql이면 Autoincrement를 생성한다. 이렇게 디비에 위임 했으면, Id값에는 null값을 넣어줘야 하고 이후 디비가 알아서 넣어주는 것이다. SEQUENCE @GeneratedValue(starategy = Generation.SE..
[JPA] 엔티티 필드와 컬럼 매핑 앞에서 엔티티 테이블 매핑에 대해 알아 보았다면, 지금은 필드와 컬럼 매핑에 대해 보려 한다. 개념적인 내용으로 깊이있는 이해가 필요하다기 보단, 사용법과 이런 것이 있구나를 다루게 될 것 같다. 주 내용이 사용법이다 보니, 간단한 예시를 통해 풀어나가겠다. 이렇게 Member 테이블과 매핑되는 클래스가 있고, 그 안에 필드를 컬럼에 매핑하는 어노테이션들이 있다. 우선 필드를 매핑하는 어노테이션은 사진과 같은 종류들이 있다. 그 중 컬럼에 매핑하는 것을 먼저 보겠다. name 객체와 컬럼에 사용되는 이름이 서로 다를 때, 이를 맞추기 위해 @Column의 name속성을 사용하게 된다. 이것을 사용해서 이름이 서로 다르더라도 컬럼 이름에 맞게 지정해 줄 수 있다. insertable, updatable 이..
[JPA] 엔티티 테이블 매핑 JPA에서 중요하게 봐야하는 것 두가지는 영속성 컨텍스트(JPA가 내부적으로 어떻게 동작하는지에 관한 매커니즘) 객체랑 관계형 데이터 베이스를 어떻게 매핑해야 하는지에 대한 실제 설계적인 측면. JPA는 엔티티를 특정 어노테이션을 활용하여 매핑한다. 객체와 테이블 매핑 @Entity는 JPA가 엔티티로 관리할 수 있게, 해당 클래스에 선언하여 지정해주는 어노테이션이다. 그래서 JPA를 사용해 테이블과 매핑할 클래스는 @Entity가 필수이다. +기본 생성자가 필수인 이유는, JPA같은걸 구현해서 쓰는 라이브러리들이 동적으로 뭘 한다거나, 리플렉션을 한다거나 이런 것들이 있는데, 그런것들을 하려면 기본 생성자가 필요하기 떄문이다. 이렇게 Entity 어노테이션으로 지정해주면, JPA가 관리하는 객체가 된다..
[JPA] 준영속 상태란 영속 상태란? Entity가 영속성 컨텍스트에 저장되어, 관리되는 상태를 말한다. 영속 상태가 될 수 있는 방법은 em.persist()가 있고, 이것 외에도 em.find와 같이 디비에서 데이터를 가져와서 1차 캐시에 저장하였을 때도 영속 상태가 된다. + https://ttungbab.tistory.com/195 준영속 상태란? 간단히 말하자면, 영속상태에서 분리된 상태를 말한다. 이렇게 되면, 영속성 컨텍스트가 제공하는 기능을 사용하지 못하게 된다.(더티 체킹, update기능 등) + 더티 체킹이란? 디비에서 데이터를 조회하면 1차 캐시에 저장되고, 최초의 상태를 스냅샷한다. 이후 flush()시점에 스냅샷과 1차 캐시의 Entity 값을 비교하게 되는데, 변경 사항이 있으면 update쿼리문을 ..