반응형

전체 글 199

[Springboot / 스프링부트] thymeleaf (1) 타임리프 표현식

1. thymeleaf 사용 http://www.thymeleaf.org"> 타임리프의 th 속성을 사용하기 위한 네임스페이스로 HTML 태그의 속성으로 작성하기 2. 주석의 종류 (1) parser-level 주석 정적 페이지에서 주석으로 있다가 thymeleaf가 처리 될 때 제거되어 클라이언트에게 노출되지 않는 주석 ex) (2) protorype-only 주석 정적 페이지에 주석으로 있다가 thymeleaf 처리 후에 화면에 보여지게 되는 주석 ex) 3. 표현식 - parameter로 넘어온 경우 -> param - session attribute일 경우 ->session - model에 담겨 온 경우(request)는 따로 적지 않음. request라고 명시하면 오류 발생함. (1) 변수 표현..

[Spring/JPA] Mapping (3) 연관 관계 매핑 (단반향, 양방향)

연관 관계 서로 다른 두 객체가 연관성을 가지고 관계를 맺는 것을 연관 관계라고 함 연관 관계의 분류 1. 방향에 따른 분류(단반향, 양방향) - 테이블의 연관 관계는 외래키를 이용하여 양방향 연관 관계의 특성을 가짐 - 참조에 의한 객체의 연관관계는 단반향 - 객체 간의 연관 관계를 양방향으로 만들고 싶으면 반대 쪽에도 필드를 추가해서 참조를 보관하면 됨 ( 양방향 관계가 아닌 서로 다른 단방향 관계 2개로 볼 수 있음) 2. 다중성에 대한 분류 - 연관 관계가 있는 객체거나 혹은 테이블 관계에서 실제로 연관을 가지는(매핑되는) 객체의 수( 객체 관계 또는 행(테이블 관계)의 수에 따라 분류 됨 (1) 1:1(OneToOne) 연관 관계 (2) 1:N(OneToMany) 연관 관계 (3) N:1(Man..

[Spring/JPA] Mapping (2) @SequenceGenerator , @TableGenerator, @Embeddable, @IdClass

PrimaryKeyMapping 1. 기본 키 생성하는 3가지 방법 (1) IDENTITY 기본 키 생성을 데이터베이스에 위임(MySql) (2) SEQUENCE 데이터베이스 시퀀스를 사용해서 기본키 할당 (3) TABLE 키 생성 테이블을 사용 참고 @Id 적용이 가능한 자바 타입 - 자바 기본형 - 자바 Wrapper 타입 - String - java.util.Date - java.sql.Date - java.math.BigDecimal - java.math.BigInteger 2. @SequenceGenerator 어노테이션으로 기본 키 생성 @Entity(name="SequenceMember") @Table(name="TBL_MEMBER_SECTION03_SUBSECTION01") @Sequenc..

[Spring/JPA ] Mapping(1) @Entity, @Table, @Enumerated, @Access

Mapping 매핑 어노테이션 객체와 테이블 : @Entity, @Table 기본키 매핑 : @Id 필드와 컬럼 매핑 : @Column 연관관계 매핑 : @ManyToOne, @OneToMany, @JoinColumn 필드와 컬럼을 매핑하기 위한 어노테이션 @Column : 컬럼 매핑 @Temporal : 날짜 타입 매핑 @Lob : BLOB, CLOB 타입 매핑 @Transient : 매핑하지 않을 특정 필드에 작성 @Enumerated : Enum 타입 매핑 @Access : JPA가 엔티티에 접근하는 방식을 지정 @Entity, @Table, @Id, @Column /* 해당 클래스를 엔티티를 설정하기 위한 어노테이션 * 프로젝트 내 다른 패키지에 동일 엔티티가 존재한다면 식별을 위해 중복 되지 않..

[Spring/스프링] JPA(Java Persistence API)

JPA(Java Persistence API) - 자바 어플리케이션에서 관계형 테이터 베이스를 사용하는 방식을 정의한 인터페이스 Hibernate - 사용이 보편화 되어 있는 JPA 명세의 구현체 Spring Data JPA - Spring에서 제공하는 모듈로 개발자가 JPA를 더 쉽게 사용할 수 있도록 도와줌 엔터티 매니저(EntitiyManager) - 엔터티를 저장하는 메모리상의 데이터 베이스 - 엔터티를 저장, 수정, 삭제, 조회 등 엔터티와 관련된 모든 일을 함 - 스레드세이프 하지 않기 때문에 동시성 문제 발생 할 수 있어 스레드간 공유 하면 안됨. - web의 경우 일반적으로는 request scope와 일치시킴 엔터티 매니저 팩토리(EntityManagerFactory) - 엔터티 매니저를..

[Spring/스프링] JUnit이란?

JUnit - 자바용 단위 테스트 - 한 가지 기능(함수)마다 일을 잘 수행하는지 확인하며 특정 모듈이 의도 된 대로 정확히 작동하는지 검증하는 절차 - 연관 컴포넌트가 개발되지 않더라도 기능별로 개발이 완료 된 것을 증명할 수 있음 1. 관련 어노테이션 @Test : 독립적으로 테스트를 수행할 메소드를 지정 @Before : @Test가 작성 된 메소드 호출 이전에 반복 되는 준비 작업을 위한 메소드에 작성한다 (테스트 메소드를 실행하기 전에 먼 저 자동으로 실행 된다 @After : @Test가 작성 된 메소드 호출 이후에 실행 @BeforeAll : 모든 테스트를 하기전에 수행할 일 @BeforeEach : 모든 테스트가 일어날때마다 실행 2. 단정문 assertArrayEquals(a,b) : 배..

[Spring/스프링] jQuery ajax , Fetch ajax(Simple string, JSON)

@ResponseBody - view 페이지가 아닌 반환 값을 클라이언트에게 그대로 반환하고자 할 때 사용하는 어노테이션 - 위치는 메소드 레벨, 반환 값 레벨 모두 가능 @RequestBody - 요청에 넘어오는 바디 값이 매개변수에 전달 됨 simple string 서버 전송 테스트 1) jQuery ajax : jQuery 에서 제공하는 ajax 메소드를 사용하면 통신에 필요한 설정을 간편하게 객체로 전달할 수 있고 크로스 브라우징 이슈도 손쉽게 해결할 수 있음 - jsp에 script 작성 jsp에 작성 전달 값 : 응답 값 : jQuery로 전송 - SimpleStringController.java @Controller public class SimpleStringController { @Get..

[Spring/스프링] 파일 업로드 (single file , multi file )

파일 업로드를 위한 환경설정 1) 파일 업로드 commoms-io , commons-fileupload 라이브러리 추가 pom.xml 에 추가(파일 업로드 관련 의존성이 추가되야 라이브러리 사용가능) 2) servlet-context.xml에 CommonsMultipartResolver bean등록 위의 라이브러리를 활용하려면 파일이 전송되었을때 알맞게 가공처리해줄 수 있는 기능을 가진 빈을 등록 라이브러리와 빈등록을 하면 가공된 형태의 객체로 넘겨줄수있음(매개변수에 전달) : 3) multipart로 전송 된 요청에 대한 인코딩 처리 일반 인코딩 필터로 구현하기 어려우므로 스프링에서 제공하는 인코딩 필터 (CharacterEncodingFilter)를 web.xml 에 설정 encoding filter..

[자바/Java] 입출력(io) / 보조스트림 / BufferredInputStream / DataInputStream / OutputStreamWriter / ObjectInputStream

기본 스트림과 필터(보조) 스트림 java.io 패키지의 입출력 스트림은 기본 스트림과 필터 스트림으로 분류할 수 있다. 기본 스트림은 외부 데이터에 직접 연결이 되는 스트림이고, 필터 스트림은 외부 데이터에 직접 연결하는 것이 아니라 기본 스트림에 추가로 사용할 수 있는 스트림이다. 주로 성능을 향상 시키는 목적으로 사용되며 생성자를 보면 구분이 가능하다. 생성자 쪽에 매개변수로 다른 스트림을 이용하는 클래스는 필터 스트림이라고 볼 수 있다. 보조스트림 - 스트림의 기능을 향상시키거나 새로운 기능을 추가하기 위해서 사용 - 실제 데이터를 주고 받는 스트림이 아니기 때문에 입출력 처리 불가능 - 기반 스트림을 먼저 생성한 후 이를 이용하여 보조 스트림을 생성 보조 스트림의 종류 - 입출력 성능 향상 : ..

[자바/Java] 입출력(IO) / FileInputStream / FileReader / FileOutputStream / FileWriter

입출력(IO) - Input과 Output의 약자로 컴퓨터 내부 또는 외부 장치와 프로그램 간의 데이터를 주고 받는것 - 장치와 입출력을 위해서는 하드웨어 장치에 직접 접근이 필요한데 다양한 매체에 존재하는 데이터들을 사용하기 위해 입출력 데이터를 처리 할 공통적인 방법으로 스트림을 이용 스트림(Stream) - 입출력 장치에서 데이터를 읽고 쓰기 위해서 자바에서 제공하는 클래스 - 모든 스트림은 단반향이며, 각각의 장치마다 연결할 수 있는 스트림 존재 - 하나의 스트림으로 입출력을 동시에 수행할 수 없으므로 동시에 수행하려면 2개의 스트림이 필요 1) 바이트 기반 스트림(1byte) 구분 입력스트림 출력스트림 최상위 클래스 InputStream OutputStream 하위 클래스 XXXInputStre..

반응형