Spring

Spring

[Spring/Java] Entity 클래스의 id값을 Long 타입으로 지정해야 하는 이유

@Entity @Getter public class Hello { @Id @GeneratedValue private Long id; @NotNull private String name; } int, long이 아닌 Wrapper Class인 Long을 쓰는 이유는 null값을 사용할 수 있기 때문이다. primitive type은 default값이 0으로 지정되어 있어 null이 될 수 없다. 예를 들어 id가 없는 경우 나타낼 수 없게 된다. null값을 정확하게 처리하기 위해서는 Wrapper Class를 사용하는 것이 더 좋은 방법이다. Wrapper Class의 Long과 Integer 중에서 Long을 쓰는 이유는 표현범위 때문이다. Long이 Integer보다 월등히 많은 수를 표현할 수 있기..

Spring

REST(Representational State Transfer) API

REST - 하나의 URI는 하나의 고유한 리소스를 대표하도록 설계된다는 개념에 전송방식을 결합해서 원하는 작업을 지정한다. - URI + GET/POST/PUT/DELETE - 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표 - HTTP URI를 통해 제어할 자원을 명시하고, HTTP Method(get/post/put/delete)을 통해 해당 자원을 제어하는 명령을 내리는 방식의 아키텍처 REST 구성 - 자원(Resource) - URI - 행위(Verb) - HTTP Method - 표현 (Representations) 잘 표현된 HTTP URI로 리소스를 정의하고 HTTP Method로 리소스에 대한 행위를 정의한다. 리소스는 JSON이나 XML 같은 여러 가지 언어로 표현할 ..

Spring

MyBatis / spring-myBatis

MyBatis 개요와 특징 - MyBatis는 java object와 sql문 사이의 자동 mapping 기능을 지원하는 ORM Framework. - sql을 별도의 파일로 분리해서 관리 - object - sql 사이의 parameter mapping 작업을 자동으로 해준다. - 익숙한 sql을 그대로 이용하면서 jdbc 코드 작성의 불편함을 제거해주고, 도메인 객체나 VO객체를 중심으로 개발이 가능 특징 - 쉬운 접근성과 코드의 간결함 - sql문과 프로그래밍 코드의 분리 - 다양한 프로그래밍 언어로 구현 가능 Mybatis의 주요 component MyBatis 설정 파일 (sqlMapConfig.xml) 데이터베이스의 접속 주소 정보나 객체의 alias, Mapping 파일의 경로 등의 고정된 ..

Spring

AOP (관점 지향 프로그래밍)

AOP(Aspect Oriented Programming) 관점 지향 프로그래밍 - 핵심 관심사항과 공통 관심사항 - 공통 모듈을 손쉽게 적용 가능 - 관심사의 분리 즉, 핵심적인 기능에서 부가적인 기능을 분리 - 분리한 부가기능을 Aspect라는 독특한 모듈 형태로 만들어서 설계하고 개발하는 방법 Spring AOP 용어 1. Target - 핵심 기능을 담고 있는 모듈로 target은 부가기능을 부여할 대상이 됨. 2. Advice - 어느 시점(메소드 수행전/후, 예외발생 후)에 어떤 공통 관심 기능(Aspect)를 적용할지 정의한 것. Target에 제공할 부가기능을 담고 잇는 모듈 3. JoinPoint - Aspect가 적용 될 수 있는 지점(method, field) - 즉 target 객체..

seco
'Spring' 카테고리의 글 목록 (2 Page)