전체 글 180

기술면접준비(3)_MVC패턴/ model-1과 model-2차이점

1. MVC (디자인) 패턴 1) 모델(Model) : 일반적으로 프로젝트에서의 모델은 DAO처럼 SQL처리를 담당하는 CRUD 메서드로 구성된 자바 빈이나 자료를 보유/전송하는 DTO, VO 등의 자바빈을 말하는 것입니다. ​ 2) 뷰(View) : 프론트 사용자들이 웹브라우저 등의 클라이언트에서 볼 수 있는 부분을 말하는 것이며, HTML/CSS/javascript (node.js 제외), 및 JSP, thymeleaf(타임리프)가 이러한 부분들에 해당됩니다. JSP로만으로도 프론트 및 백단(back-end)을 모두 구성할 수 있지만 MVC model-2 패턴 위반(안티 패턴)이기 때문에 그렇게 하지 않습니다. ​ 3 컨트롤러(controller) : 모델을 활용하여 HTTP 제어 흐름에서 요청/응답..

기술면접 2021.06.07

기술면접준비(2)_AOP/IOC컨테이너/DI

1. AOP란 무엇입니까? ​ 관점 지향 프로그래밍(Aspect Oriented Programming)의 약자. 로깅(logging)이나 트랜잭션의 전파정책(propagation) 등 일일이 호출하지 않아도 마치 Servlet의 필터(filter) 처럼 일정한 시점에 관점을 호출하도록 메타데이터(설정 정보)에서 지정하면 AOP 컨테이너(가령 스프링 컨테이너)에 의해 자동으로 호출되는 모듈을 작성할 수 있는데 이것이 관점(aspect)이라는 객체이다. 스프링은 aspectJ 라는 관점지향 언어를 사용하여 spring aop 의존성 정보를 통해서 관점 지향 프로그램을 작성할 수 있다. ​ https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:fdl:..

기술면접 2021.06.07

기술면접준비(1)_VO/DAO/DTO/트랜잭션

1. VO는 무엇이며 언제 사용하는가? 자바빈의 일종으로 값 객체로서 데이터베이스 DML에 대응되는 CRUD 메서드들의 모듈인 DAO, 직렬화(객체의 내용을 파일 스트림으로 만듦) 등에서 데이터 유출입시 값을 일시적으로 보유하도록 사용하는 객체. 보통 일반적으로 필드는 보안(직접 접근 방지)을 위해 private 접근 제어자를 활용하는 경우가 많고 외부 접근시 필드들에 대한 getter/setter 메서드를 주로 활용합니다. lombok 등의 유틸리티를 사용하면 애너테이션 표기만으로 각종 관련 메서드들을 자동생성해주는 기능을 활용할 수 있다. ​ 2. 관련 질문) getter/setter는 무엇인가? VO나 DTO(TO)등의 자바빈 객체에서 멤버 필드에 대해 멤버 필드의 직접 접근을 막고 멤버 필드들을 ..

기술면접 2021.06.07

JPA시작(7)_필드와 컬럼 매핑_속성에 따른 DDL 생성확인 @Column, @Enumerated, @Temporal, @Lob, @Transient, @Access

@Column 객체필드를 테이블 컬럼에 매핑한다. ▼ nullable (DDL 생성기능) @Column (nullable = false) private String data; //생성된 DDL data varchar(255) not null ▼ unique (DDL 생성기능) @Column (unique = true) private String username; //생성된 DDL alter table Tablename add Constraint UK_Xxx unique (username) ▼ columnDefinition (DDL 생성기능) @Column (columnDefinition = "varchar(100) default 'EMPTY'") private String data; //생성된 DDL d..

JPA 2021.06.07

JPA시작(6)_기본키 매핑 (직접할당, 자동생성)

JPA가 제동하는 데이터베이스 기본키 생성 전략은 다음과 같다. 직접할당 : 기본키를 애플리케이션에서 직접할당 자동생성 : 대리키 사용방식 (IDENTITY, SEQUENCE, TABLE) 기본키 직접할당 em.persist()로 엔티티를 저장하기 전에 애플리케이션에서 기본키를 직접 할당하는 방법 Board board = new Board(); board.setId("id1") //기본키 직접 할당 em.persist(board); 기본키 자동생성 1) IDENTITY 전략 기본키 생성을 데이터베이스에 위임하는 전략.. CREATE TABLE BOARD ( ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, DATA VARCHAR(255) ); INSERT INTO BOARD(..

JPA 2021.06.07

JPA시작(5)_데이터베이스 스키마 자동생성

JPA는 데이터베이스 스키마 자동생성 기능을 제공한다. H2 스키마에 직접 CREATE 할 필요가 없다는 말!! ★데이터베이스 스키마 자동생성 방법★ ↓↓↓ 기존 회원엔티티 클래스를 이용해서 스키마를 자동생성할꺼에요 ↓↓↓ https://baejiyoung.tistory.com/5 JPA시작(4)_다양한 매핑 사용 @Enumerated, @Temporal, @Lob 회원관리 프로그램에 요구사항을 추가해보자. 회원은 일반 회원과 관리자로 구분해야함 회원가입일과 수정일이 있어야함 회원을 설명할 수 있는 필드가 있어야함. 길이제한 없음 package jpabook.s baejiyoung.tistory.com 1) persistence.xml 에 속성추가 참고> 이 속성을 추가하면 콘솔에서 테이블생성 DDL을 ..

JPA 2021.06.07

JPA시작(4)_다양한 매핑 사용 @Enumerated, @Temporal, @Lob, @Column, @UniqueConstraint

회원관리 프로그램에 요구사항을 추가해보자. 회원은 일반 회원과 관리자로 구분해야함 회원가입일과 수정일이 있어야함 회원을 설명할 수 있는 필드가 있어야함. 길이제한 없음 회원이름은 필수로 입력, 10자를 초과하면 안된다 package jpabook.start; import javax.persistence.*; import java.util.Date; @Entity @Table(name="MEMBER", uniqueConstraints = {@UniqueConstraint( name = "NAME_AGE_UNIQUE", columnNames = {"NAME", "AGE"} )}) public class Member { @Id @Column(name = "ID") private String id; @Colum..

JPA 2021.06.07

JPA시작(3)_애플리케이션개발_기초편

객체 매핑완료!! persistence.xml 로 JPA 설정도 완료 했다면 !! 이제 JPA 애플리케이션을 개발해보자.. 코드는 크게 3부분으로 나뉘어있다 엔티티 매니저 설정 트랜잭션 관리 비즈니스 로직 JpaMain.java package jpabook.start; import javax.persistence.*; import java.util.List; /** * @author holyeye */ public class JpaMain { public static void main(String[] args) { //엔티티 매니저 팩토리 생성 EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook"); EntityManage..

JPA 2021.06.07

JPA시작(2)_객체 매핑방법_@Entity, @Table, @Id, @Column, persistence.xml 설정

h2 실행 > 회원테이블 만들기 CREATE TABLE MEMBER ( ID VARCHAR(255) NOT NULL, --아이디(기본 키) NAME VARCHAR(255), --이름 AGE INTEGER NOT NULL, --나이 PRIMARY KEY (ID) ) 회원클래스 작성하기 package jpabook.start; import javax.persistence.*; //jpa가 제공하는 매핑어노테이션 추가 @Entity @Table(name="MEMBER") public class Member { @Id @Column(name="ID") private String id; @Column(name="NAME") private String username; //매핑 정보가 없는필드 private Int..

JPA 2021.06.07

JPA시작(1)_H2데이터베이스 설치 / maven 설정

★JPA의 첫 걸음_ H2 데이터베이스 설치하기★ h2 데이터베이스 설치방법 https://www.h2database.com H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2 MB jar file size Suppor www.h2database.com All Platform 설치!! 압축 풀기 -> bin/h2.bat 실행..

JPA 2021.06.07