전체 글
-
이번 포스트에서는 SpringFramework의 기본적인 특징에 대해 살펴보자. 스프링이란? Framework스프링이란 자바 애플리케이션 개발을 위한 프레임워크이다.여기서 프레임워크라는 멋진 용어가 등장하는데 프레임워크란 사전적으로는 뼈대 혹은 틀을 의미하며 프로그래밍에서는 비지니스 로직이 빠진 반제품 상태의 애플리케이션 정도로 해석된다.프로그램이 아니더라도 우리는 일상생활에서 많은 프레임워크를 접한다.예를 들어 아주 좋은 발표 주제가 생각났고 이를 발표하기 위한 자료를 만든다고 생각해보자. 전체적인 문서의 구조도 잡아야 하고 효율적으로 내용을 전달하기 위해 여러가지 복잡한 기능들이 떠오를 것이다. 이때 우리는 습관적으로 파워포인트를 찾는다.우리는 왜 파워포인트를 찾을까요? 파워포인트가 없다고 해서 ..
01. Spring Framework이번 포스트에서는 SpringFramework의 기본적인 특징에 대해 살펴보자. 스프링이란? Framework스프링이란 자바 애플리케이션 개발을 위한 프레임워크이다.여기서 프레임워크라는 멋진 용어가 등장하는데 프레임워크란 사전적으로는 뼈대 혹은 틀을 의미하며 프로그래밍에서는 비지니스 로직이 빠진 반제품 상태의 애플리케이션 정도로 해석된다.프로그램이 아니더라도 우리는 일상생활에서 많은 프레임워크를 접한다.예를 들어 아주 좋은 발표 주제가 생각났고 이를 발표하기 위한 자료를 만든다고 생각해보자. 전체적인 문서의 구조도 잡아야 하고 효율적으로 내용을 전달하기 위해 여러가지 복잡한 기능들이 떠오를 것이다. 이때 우리는 습관적으로 파워포인트를 찾는다.우리는 왜 파워포인트를 찾을까요? 파워포인트가 없다고 해서 ..
2020.06.09 -
SWEA 모의 1963 탈주범 검거 문제링크 http://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpLlKAQ4DFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com * 일단 문제를 정독 하고 1시간 이상 반드시 고민이 필요합니다. 핵심 컨셉 고려사항 * 파이프 정보 - 파이프는 1~7까지 고정된 형태로 주어지며 들어가는 구멍과 나가는 구멍이 중요 - boolean[][] 형태에 열린 공간은 true로 설정 - 이때 방향은 북쪽을 0으로 해서 시계방향으로 맞춰야 나중에 사방탐색 할 때나 파이프간의 연결을 확인할 때 수월..
SWEA 모의 1963 탈주범 검거SWEA 모의 1963 탈주범 검거 문제링크 http://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpLlKAQ4DFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com * 일단 문제를 정독 하고 1시간 이상 반드시 고민이 필요합니다. 핵심 컨셉 고려사항 * 파이프 정보 - 파이프는 1~7까지 고정된 형태로 주어지며 들어가는 구멍과 나가는 구멍이 중요 - boolean[][] 형태에 열린 공간은 true로 설정 - 이때 방향은 북쪽을 0으로 해서 시계방향으로 맞춰야 나중에 사방탐색 할 때나 파이프간의 연결을 확인할 때 수월..
2020.06.08 -
게시글의 번호처럼 자동으로 증가하는 컬럼을 위해서는 sequence를 사용하거나 auto_increment 속성을 이용한다. 이번 포스트에서는 이렇게 자동으로 생성되는 키를 매핑하는 방법에 대해 알아보자. @Id의 자동 키 매핑 전략일반적으로 식별자 컬럼(P.K)은 일반 컬럼이 아닌 자동 생성되는 대리키를 이용하는 경우가 많다. 이는 고유성이 쉽게 보장되고 인덱스 성능을 향상시키는 등의 장점이 있기 때문이다. 게시글의 번호나 회원의 번호등은 아주 좋은 예이다. 이런 자동 생성 대리키를 이용하기 위해서 Sequence를 사용하거나 auto_increment 속성을 이용할 수 있다.JPA에서는 자동으로 증가하는 P.K를 설정하기 위해 @GeneratedValue를 사용한다.@GeneratedValue@Gen..
04.자동 키 매핑 전략게시글의 번호처럼 자동으로 증가하는 컬럼을 위해서는 sequence를 사용하거나 auto_increment 속성을 이용한다. 이번 포스트에서는 이렇게 자동으로 생성되는 키를 매핑하는 방법에 대해 알아보자. @Id의 자동 키 매핑 전략일반적으로 식별자 컬럼(P.K)은 일반 컬럼이 아닌 자동 생성되는 대리키를 이용하는 경우가 많다. 이는 고유성이 쉽게 보장되고 인덱스 성능을 향상시키는 등의 장점이 있기 때문이다. 게시글의 번호나 회원의 번호등은 아주 좋은 예이다. 이런 자동 생성 대리키를 이용하기 위해서 Sequence를 사용하거나 auto_increment 속성을 이용할 수 있다.JPA에서는 자동으로 증가하는 P.K를 설정하기 위해 @GeneratedValue를 사용한다.@GeneratedValue@Gen..
2020.06.07 -
이번 포스트에서는 JPA에서 사용되는 데이터 타입의 종류에 대해 알아보자.데이터 타입JPA는 크게 Entity 타입과 Value 타입 2가지 데이터 타입을 지원한다.타입설명Entity 타입@Entity로 선언된 객체의 타입Value 타입Entity의 구성 요소로 단순히 값으로 사용되는 타입 - Basic 타입: 기본형 및 Wrapper 타입, String - Embedded 타입: 복합 값 타입으로 별도의 클래스로 구성(ex: Address, Phone, Email, ...) - Collection 값 타입: 여러 가지 내용을 가지는 타입Value 타입 중 Basic 타입이야 별 특별한 내용이 없고 여기서는 약간 생소한 Embedded 타입과 Collection에 대해 알아보자. Embedded 타입 E..
03. Value Type이번 포스트에서는 JPA에서 사용되는 데이터 타입의 종류에 대해 알아보자.데이터 타입JPA는 크게 Entity 타입과 Value 타입 2가지 데이터 타입을 지원한다.타입설명Entity 타입@Entity로 선언된 객체의 타입Value 타입Entity의 구성 요소로 단순히 값으로 사용되는 타입 - Basic 타입: 기본형 및 Wrapper 타입, String - Embedded 타입: 복합 값 타입으로 별도의 클래스로 구성(ex: Address, Phone, Email, ...) - Collection 값 타입: 여러 가지 내용을 가지는 타입Value 타입 중 Basic 타입이야 별 특별한 내용이 없고 여기서는 약간 생소한 Embedded 타입과 Collection에 대해 알아보자. Embedded 타입 E..
2020.06.07 -
이번 포스트에서는 MST의 개요에 대해서 알아보자. MST 문제 제시https://www.acmicpc.net/problem/6497 키워드: 모든 집들을 연결, 절약할 수 있는 최대 액수(최소 비용) MST(Minimum Spanning Tree) 개념먼저 Span이란 교각과 교각 사이의 거리를 말한다. 즉 그래프에서는 정점과 정점을 잊는 무향의 간선을 말하며 이 span의 거리는 일반적으로 가중치를 나타낸다.Spanning Tree(신장 트리)란 말 그대로 span으로 이뤄진 트리이다. span이니까 간선을 의미한다는걸 알겠고 거기에 tree의 속성이 추가된 것이다. tree란 circle을 이루지 않는 특징이 있다. 따라서 Spanning Tree는 다음과 같이 정의할 수 있다.N개의 정점으로 이..
[MST] 개요이번 포스트에서는 MST의 개요에 대해서 알아보자. MST 문제 제시https://www.acmicpc.net/problem/6497 키워드: 모든 집들을 연결, 절약할 수 있는 최대 액수(최소 비용) MST(Minimum Spanning Tree) 개념먼저 Span이란 교각과 교각 사이의 거리를 말한다. 즉 그래프에서는 정점과 정점을 잊는 무향의 간선을 말하며 이 span의 거리는 일반적으로 가중치를 나타낸다.Spanning Tree(신장 트리)란 말 그대로 span으로 이뤄진 트리이다. span이니까 간선을 의미한다는걸 알겠고 거기에 tree의 속성이 추가된 것이다. tree란 circle을 이루지 않는 특징이 있다. 따라서 Spanning Tree는 다음과 같이 정의할 수 있다.N개의 정점으로 이..
2020.06.06 -
이번 시간에는 CASCADE 옵션을 이용한 영속성 전이와 고아객체의 관리에 대해 살펴보자. Cascade 옵션을 이용한 영속성 전이 영속성 전이?영속성 전이란 특정 entity의 영속 상태를 변경할 때 연된된 entity의 영속 상태도 함께 변경하는 것을 의미한다. 앞서 살펴봤던 Attachment, Post, Member의 관계를 생각해보자.ERD를 살펴보면 Attachment는 Post의 P.K인 pno를 post로 참조하고 있다. 따라서 DB 입장에서 Attachment에 데이터를 저장하려면 먼저 Post에 데이터가 있어야 한다. 또한 Post를 삭제하기 위해서 먼저 Attachment에서 대상 Post를 참조하는 데이터를 먼저 지워야 한다. 이에 따라 관련 동작을 위해서는 아래와 같이 장황한 코드..
06. 연관 관계의 관리 - 영속성 전이와 고아객체 관리이번 시간에는 CASCADE 옵션을 이용한 영속성 전이와 고아객체의 관리에 대해 살펴보자. Cascade 옵션을 이용한 영속성 전이 영속성 전이?영속성 전이란 특정 entity의 영속 상태를 변경할 때 연된된 entity의 영속 상태도 함께 변경하는 것을 의미한다. 앞서 살펴봤던 Attachment, Post, Member의 관계를 생각해보자.ERD를 살펴보면 Attachment는 Post의 P.K인 pno를 post로 참조하고 있다. 따라서 DB 입장에서 Attachment에 데이터를 저장하려면 먼저 Post에 데이터가 있어야 한다. 또한 Post를 삭제하기 위해서 먼저 Attachment에서 대상 Post를 참조하는 데이터를 먼저 지워야 한다. 이에 따라 관련 동작을 위해서는 아래와 같이 장황한 코드..
2020.06.06 -
이번 시간에는 관계를 나타내는 애너테이선들이 공통적으로 가지는 fetch 속성을 살펴보자. 관계에 따른 로딩 시점 결정 관계 설정과 fetch 속성fetch는 DB에서 연관관계 엔티티를 실제로 조회해서 가져오는 것 즉 select 시점을 결정하는 속성으로 FetchType이라는 enum 타입으로 선언되어있다.fetch 속성내용기본 적용FetchType.EAGER(열렬한)즉시 로딩 - 엔티티 조회 시 join을 이용해 연관 관계 엔티티까지 한번에 조회, 영속화 - 연관된 엔티티가 하나인 경우(가져올게 적다) - @ManyToOne, @OneToOneFetchType.LAZY(게으른)지연 로딩 - 엔티티 조회 시 대상 엔티티만 조회, 연관 관계 엔티티는 조회하지 않음 - 연관 관계 엔티티는 필요한(사용하는..
05. 연관 관계 관리 - fetch 속성이번 시간에는 관계를 나타내는 애너테이선들이 공통적으로 가지는 fetch 속성을 살펴보자. 관계에 따른 로딩 시점 결정 관계 설정과 fetch 속성fetch는 DB에서 연관관계 엔티티를 실제로 조회해서 가져오는 것 즉 select 시점을 결정하는 속성으로 FetchType이라는 enum 타입으로 선언되어있다.fetch 속성내용기본 적용FetchType.EAGER(열렬한)즉시 로딩 - 엔티티 조회 시 join을 이용해 연관 관계 엔티티까지 한번에 조회, 영속화 - 연관된 엔티티가 하나인 경우(가져올게 적다) - @ManyToOne, @OneToOneFetchType.LAZY(게으른)지연 로딩 - 엔티티 조회 시 대상 엔티티만 조회, 연관 관계 엔티티는 조회하지 않음 - 연관 관계 엔티티는 필요한(사용하는..
2020.06.05 -
이번 시간에는 M:N 관계의 처리에 대해 살펴보자. M:N의 관계 처리 M:N의 관계M:N 관계는 양측 모두가 여러 개의 관계를 가지는 경우이다. 예를 들어 게시글과 카테고리를 생각해보면 게시글 하나가 여러 카테고리에 속해있을 수 있고 하나의 카테고리에는 여러 개의 게시글이 있을 수 있다.일반적으로 DB에서는 이런 상황을 처리하기 위해 중간에 연계 테이블을 만들어서 N:1 관계로 풀어서 처리하는 것이 일반적이다.https://goodteacher.tistory.com/466/#comment18561464 [DB] 다대다 관계의 문제점과 해결이번 포스트에서는 다대다 관계의 문제점과 해결 방법에 대해서 살펴보자. 다대다 관계다대다 관계의 예DB 모델링 과정에서 다대다 관계가 나올 수 있다. 쉽게 생각할 ..
04. 연관 관계 - M:N 관계이번 시간에는 M:N 관계의 처리에 대해 살펴보자. M:N의 관계 처리 M:N의 관계M:N 관계는 양측 모두가 여러 개의 관계를 가지는 경우이다. 예를 들어 게시글과 카테고리를 생각해보면 게시글 하나가 여러 카테고리에 속해있을 수 있고 하나의 카테고리에는 여러 개의 게시글이 있을 수 있다.일반적으로 DB에서는 이런 상황을 처리하기 위해 중간에 연계 테이블을 만들어서 N:1 관계로 풀어서 처리하는 것이 일반적이다.https://goodteacher.tistory.com/466/#comment18561464 [DB] 다대다 관계의 문제점과 해결이번 포스트에서는 다대다 관계의 문제점과 해결 방법에 대해서 살펴보자. 다대다 관계다대다 관계의 예DB 모델링 과정에서 다대다 관계가 나올 수 있다. 쉽게 생각할 ..
2020.06.04