(242)
-
Spring[Info] - Maven VS Gradle
🤔 빌드 관리 도구? 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램 초기의 java 빌드도구로 Ant를 많이 사용하였으나 최근 많은 빌드도구들이 생겨 Maven이 많이 쓰였고, 현재는 Gradle이 많이 쓰인다. Maven 장점 및 특징 자바 전용 프로젝트 라이프사이클 관리 목적 빌드 도구이며 Ant 불편함을 해결하고자 만들었다. pom.xml을 이용한 정형화된 빌드 시스템(필요한 라이브러리를 정의하면 알아서 다운받아줌) 간단한 설정을 통한 배포 관리가 가능 하다. Gradle 장점 및 특징 Maven 과 Ant 의 장점을 조합하여 만든 빌드 도구이다. build.gradle을 이용한 정형화된 빌드 시스템이다. 멀티 프로젝트에 용이하다. Gradle은 프로젝트의 어느 부분이 업데이트..
2021.07.02 -
Spring[Info] - JPA Annotations
@Entity 테이블과 일대일로 매칭되는 객체 단위이며 Entity 객체의 인스턴스 하나가 테이블에서 하나의 레코드 값을 의미합니다. @Table 데이터베이스상의 테이블명을 정해줄 수 있다. Entity 클래스의 이름 그대로 테이블이 생성 되기 때문에 관례적으로 변경해 줄 때 사용한다. @Entity @Table(name = "SCHOOL") public class School { ... } @Column 데이터베이스의 테이블에 있는 컬럼과 동일하게 1:1로 매칭되기 때문에 Entity 클래스 안에 내부변수로 정의 테이블에 a,b,c 컬럼이 있다면 각각 3개의 @Column 어노테이션을 작성하게 됩니다. 다만 실제 a,b,c,d 총 4개의 칼럼이 있더라도 a,b,c 컬럼만 Entity 클래스에 작성해도 ..
2021.07.02 -
Spring[Info] - 빈(Bean)
🤔 빈 (Bean)? IoC에서 관리되는 일반적인 객체 다음 객체는 Bean이 아니다 OwnerController ownerController = new OwnerController(); 다음 객체는 applicationContext에서 관리하는 객체를 가져왔으므로 Bean이다. OwnerController bean = applicationContext.getBean(OwnerController.class); 🤔 Bean 만드는 방법? 2가지 방법 Component Scanning 직접 등록하기 Component Scanning @Controller라는 Annotation은 사실 @Component Annotation을 사용하도록 구현되어 있다. Annotation 프로세서 중 IoC가 사용하는 여러가지..
2021.07.02 -
Spring[Info] - RESTful
🤔 REST (Representational State Transfer) 자원의 상태 전달 네트워크 아키텍처 🤔 REST 조건 1. Client, Server 클라이언트와 서버가 서로 독립적으로분리 되어 있어야 한다. 2. Stateless 요청에 대해서 클라이언트의 상태를 서버에 저장하지 않는다. 3. Cache 클라이언트는 서버의 응답을 Cache(임시저장) 할 수 있어야 한다. 클라이언트가 Cache를 통해서 응답을 재사용할 수 있어야 하며, 이를 통해서 서버의 부하를 낮춤 4. 계층화 (Layered System) 서버와 클라이언트 사이에 방화벽, 게이트웨이, Proxy등 다양한 계층 형태로 구성 가능해야 하고 이를 확장 할 수 있어야 한다. 5. 인터페이스 일관성 인터페이스의 일관성을 지키고, ..
2021.07.02 -
Spring[Info] - Validation
🤔 Validation? 일반적인 애플리케이션에서 데이터 유효성 검사 로직은 다음과 같은 문제를 가지고 있다. 애플리케이션 전체에 분산되어 있다. 코드 중복이 심하다. 비즈니스 로직에 섞여있어 검사 로직 추척이 어렵고 애플리케이션이 복잡해진다. 위 경우를 해결하기 위한 Bean Validation 이라는 데이터 유효성 검사 프레임워크를 제공하고 있다. Validation Anntation Validation 사용법 dependencies { implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.5.1' } build.gradle 추가 @Data public class Input..
2021.07.02 -
Spring[Info] - Redis
Reference 개발자를 위한 레디스 튜토리얼 01 : NHN Cloud Meetup 🤔 Redis ? Remote DIctionary Server 레디스는 In-Memory 데이터베이스 즉, 모든 데이터를 메모리에 저장하고 죄회 기존 관계형 데이터베이스 보다 훨씬 빠름 다양한 자료 구조를 지원 * DB CRUD작업 시 Redis cache에 저장하여 비교 작업후 DB에 접근하는 방식을 주로 사용한다. * Redis cache에 DB data가 있는지 확인 후 실제 DB에 접근하기 때문에 부하량이 적어진다. Redis 자료 구조 String 레디스의 String은 키와 연결할 수 있는 가장 간단한 유형의 값 키가 문자열이므로 이 구조는 문자열을 다른 문자열에 매핑하는 것 string 타입에는 '모든 종..
2021.07.02