전체 글
-
[JPA] 4. 엔티티 매핑 - 1. 객체와 테이블 매핑 / 데이터베이스 스키마 자동 생성ComputerScience/JPA 2022. 6. 25. 22:40
객체와 테이블 매핑 엔티티 매핑에는 다음과 같은 매핑이 있습니다. 객체와 테이블 매핑: @Entity, @Table 필드와 컬럼 매핑: @Column 기본 키 매핑: @Id 연관관계 매핑: @ManyToOne,@JoinColumn 우리는 이 중 객체와 테이블 매핑을 알아보도록 하겠습니다. @Entity @Entity가 붙은 클래스는 JPA가 관리하고 이를 엔티티라고 합니다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션 필수 주의 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자) final 클래스, enum, interface, inner 클래스 사용X 내가 디비에 저장하고 싶은 필드에는 저장할 필드에 final 사용 @Entity 속성 정리 속성: na..
-
[JPA] 3. 영속성 관리 - 플러시, 준영속ComputerScience/JPA 2022. 6. 19. 15:05
앞 장에서 영속성 컨텍스트에 대해 알아봤습니다. 이번 장에서는 영속성 컨텍스트에서 사용하는 플러시와 준영속 상태에 대해 알아보겠습니다. 플러시 플러시를 작동시키게 되면 영속성 컨텍스트의 변경내용을 데이터베이스에 반영하게 됩니다. 보통은 DB가 commit 될 때 flush가 발동하게 됩니다. 플러시의 특징은 다음과 같습니다. 영속성 컨텍스트를 비우지 않음 -> 1차 캐시를 비우는 게 아닙니다. 영속성 컨텍스트의 변경내용을 데이터베이스에 동기화 트랜잭션이라는 작업 단위가 중요 -> 커밋 직전에만 동기화 하면 됩니다. 플러시 작동 순서 변경감지 수정된 엔티티 쓰기 지연 SQL 저장소에 등록 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송(등록, 수정, 삭제 쿼리) 영속성 컨텍스트를 플러시 하는 방법 영..
-
[JPA] 3. 영속성 관리 - 영속성 컨텍스트ComputerScience/JPA 2022. 6. 11. 17:02
영속성 컨텍스트 JPA에서 가장 중요한 2가지가 있습니다. 첫번째는 이전 장에서 설명했던 관계형 데이터베이스를 매핑하는 것이고 두번째는 영속성 컨텍스트입니다. 엔티티 매니저 팩토리와 엔티티 매니저 처음 생성된 엔티티 매니저 팩토리는 클라이언트의 요청에 따라 엔티티 매니저를 생성합니다. 그리고 엔티티 매니저는 DB Connection Pool에 있는 Connection을 이용해서 DB에 접근합니다. DB Connection Pool DB Connection 생성 자체가 리소스를 많이 소모하기 때문에 미리 Connection들을 생성해둔 뒤 DB 연결에 대한 요청이 올때마다 사용하기 위한 Pool 영속성 컨텍스트란? JPA를 이애하는데 가장 중요한 용어입니다. "엔티티를 영구 저장하는 환경"이란 뜻입니다. ..
-
[JPA] 2. JPA 시작ComputerScience/JPA 2022. 6. 6. 20:53
이제 프로젝트를 생성해보겠습니다. 사용도구 사용된 프로그래밍 도구(?)는 다음과 같습니다. H2 Database 1. http://www.h2database.com/ H2 Database Engine (redirect) H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server mo www.h2database.com..
-
[JPA] 1. JPA 소개 - JPA 소개ComputerScience/JPA 2022. 6. 5. 20:42
이전 글에서는 JPA 이전의 SQL 주도 개발의 문제점에 대해 알아봤습니다. 반복적인 CRUD 개발, 패러다임의 불일치 등 많은 문제점으로부터 ORM 개발이 나오게 됐고 Java 진영의 표준이 JPA라는 것까지 알게 됐습니다. 이번 장에서는 JPA가 무엇인지 간단하게 알아보도록 하겠습니다. JPA? Java Persistence API의 줄임말 자바 진영의 ORM 기준 표준 ORM? 그렇다면 ORM은 무엇일까? Object-relational mapping(객체 관계 매핑) 객체는 객체대로 설계 관계형 데이터베이스는 관계형 데이터베이스대로 설계 ORM 프레임워크가 중간에서 매핑 대중적인 언어는 대부분 ORM이 존재 JPA는 애플리케이션과 JDBC 사이에서 동작한다. JPA는 사실 애플리케이션과 JDBC ..
-
[JPA] 1. JPA 소개 - SQL 중심적인 개발의 문제점ComputerScience/JPA 2022. 6. 2. 23:38
시작하기에 앞서 Java의 ORM 표준 기술인 JPA에 대해서 알아보도록 합니다. 해당 게시글은 Infrean의 김영한 개발자의 '자바 ORM 표준 JPA 프로그래밍'을 참고하여 작성됐습니다. SQL 중심적인 개발의 문제점 현재 시중의 프로그램 중 객체 지향 언어로 개발된 프로그램들이 정말 많습니다. Java, Scala 등의 객체 지향 언어 중 Java는 아직까지도 많은 개발자들에게 사랑받는 언어 중 하나입니다. 객체지향언어 객체지향언어란 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용하도록 만드는 프로그래밍 언어 그리고 애플리케이션에서 데이터베이스 세계의 패권은 아직 RDB(관계형 데이터베이스)가 쥐고 있죠. NoSQL도 많이 뜨고 있지만 NoSQL은 대용량 데이터분석 등에 용이한 DBMS입..
-
[Spring Boot] What are query parameter and @RequestParam Annotation?ComputerScience/Spring Boot 2022. 3. 8. 21:26
1. What is API query parameter. API query parameter은 URL 의 '?' 마크 뒤의 optional key-value pairs로 정의된다. 브라우저 링크에서 다음과 같은 링크를 자주 보곤 한다. https://a.com/api/get/users?id=1&name=lee URL 맨 마지막 '?' 표시 뒤 값을 query string이라고 한다. URL 맨 마지막 '?'표시 뒤 key-value pair 형식의 값을 우리는 query parameter라고 부른다. '?' 마크는 url의 path와 query parameter를 분리하기 위해 사용된다. '&' 마크는 2개 이상의 parameter를 표시하기 위해 사용된다. 2. What is @RequestParam ..
-
[주식] 보통주 추가상장(스톡옵션 행사)이란?Economy/주식 2021. 10. 5. 23:07
카카오 주식을 살펴보던 도중 보통주 추가상장 (스톡옵션 행사)라는 공시를 보게 됐다. 이는 카카오 주가에 호재일까 악재일까? 결론부터 말하자면 악재다. 스톡옵션 주식매수선택권 또는 주식매입선택권이라고 한다. 보통 신생회사들이 인재들을 영입하고 확보해두기 위해 이 수단을 사용한다. 즉, '스톡옵션'을 부여한다. 라는 말은 회사의 주식 일부를 일정 가격에 매입할 수 있는 권리를 부여하고 일정기간이 지나면 처분할 수 있는 권리까지 부여하는 것이다. 예를 들어, 직원이 스톡옵션으로 현재 가격이 100원인 주식 100주를 2년 뒤에 똑같이 100원에 매입할 권리를 부여받는다고 하자. 스톡옵션을 부여받은 직원은 2년 뒤 회사의 주가가 200원이 된 상태에서 옵션을 행사한다면(100원에 매입할 권리) 100주*100..
-
-
일상Daily 2021. 1. 21. 00:55
인턴말고 공채로 입사한 지 벌써 4개월이 지났다. 사실 퇴근하고 저녁 먹으면 밤 8시, 4시간동안 뭘 해야할 지 아직도 고민이다.
-
[프롤로그] 2020년 상반기 취업준비 후기취업 2020. 9. 26. 22:32
2020년이 시작되면서 취업을 제대로 준비해야겠다는 생각을 했다. 그러면서 내 모습을 돌아보니 컴공임에도 불구하고 개발 프로젝트가 너무 부족한게 보였다. 남들은 3~4개 정도의 제대로 된 교내외 프로젝트 경험도 갖고 있고 수상경험도 갖고 있었지만 나는 제대로 된 프로젝트 경험이 하나 없었다(정말 하나 없었다). 20학년 1학기에 진행될 캡스톤이 전부였다. 부족했던 프로젝트 경험도 만들고 동시에 '인턴'이라는 스펙을 쌓고자 여름방학 땐 꼭 인턴을 하겠노라 마음 먹었다. 학기 중에 진행되는 인턴이 아닌 방학에 잠깐 진행되는 인턴을 찾고자 하니 대부분이 사기업 채용형 인턴이었다. 나는 어쩔수 없이 채용이 되지 않더라도 인턴 경험이라도 쌓고 싶었기 때문에 '일단 붙자'라는 마음으로 취준을 시작했다. 3월부터 올..
-
brew를 통해 Hadoop설치, Hive설치 후 Mysql연동하기ComputerScience/DB,Cloud 2020. 7. 29. 19:07
개발하면서 가장 어렵고 곤란한 것을 뽑자면 새로운 프로그램 툴을 설치하고 환경설정하는 것이 아닐까? 이번에도 그렇다. Hadoop을 설치하고 Hive를 설치하고 Mysql을 연동하는데 정말 한 세월이 걸렸다. 잊지 않기 위해, 나와 같은 곤란함을 가진 사람들에게 도움이 되기 위해 다음과 같은 글을 올립니다. 설치는 Macbook에서 진행됐고 사용하는 terminal은 zsh입니다. 자바는 미리 설치가 되어있다고 가정합니다. 다운 받는 버전은 시기에 따라 다를 수 있으니 해당 버전에 맞게 숫자를 다르게 쓰셔야 합니다. Homebrew 설치 맥용 패키지 매니저이다. yum과 apt-get과 유사하다고 보면 된다. $/bin/bash -c "$(curl -fsSL https://raw.githubusercon..
-
[프로그래머스] 카펫카테고리 없음 2020. 7. 24. 00:57
https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 �� programmers.co.kr 카펫 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자..
-
[프로그래머스]더 맵게ComputerScience/코딩테스트 2020. 7. 24. 00:14
https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같�� programmers.co.kr 문제 설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은..