@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 클래스에 작성해도 ..
🤔 빈 (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가 사용하는 여러가지..
🤔 REST (Representational State Transfer) 자원의 상태 전달 네트워크 아키텍처 🤔 REST 조건 1. Client, Server 클라이언트와 서버가 서로 독립적으로분리 되어 있어야 한다. 2. Stateless 요청에 대해서 클라이언트의 상태를 서버에 저장하지 않는다. 3. Cache 클라이언트는 서버의 응답을 Cache(임시저장) 할 수 있어야 한다. 클라이언트가 Cache를 통해서 응답을 재사용할 수 있어야 하며, 이를 통해서 서버의 부하를 낮춤 4. 계층화 (Layered System) 서버와 클라이언트 사이에 방화벽, 게이트웨이, Proxy등 다양한 계층 형태로 구성 가능해야 하고 이를 확장 할 수 있어야 한다. 5. 인터페이스 일관성 인터페이스의 일관성을 지키고, ..
🤔 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..
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 타입에는 '모든 종..
Filiter DispatcherServlet 앞에서 먼저 동작 웹 어플리케이션의 Context의 기능 스프링 기능을 활용하기에 어려움 일반적으로 인코딩, CORS, XSS, LOG, 인증, 권한 등을 구현 Interceptor DispatcherServlet에서 Controller 사이에서 동작 Spring Context의 기능이며 일종의 빈 스프링 컨테이너이기에 다른 빈을 중비하여 활용성이 좋음 다른 빈을 활용 가능하기에 인증, 권한 등을 구현 스프링부트에서 필터 설정 1. FilterRegistrationBean으로 등록 자바 프로그래밍 방식으로 FilterRegistrationBean을 이용해서 필터로 등록한 후에 WebMvcConfigurer을 상속 받아 설정 후 빈으로 등록하는 방식 @Slf4..
🤔 ORM? (Objet-relational mapping) 객체는 객체대로 설계하고, 관계형 데이터베이스는 베이스대로 설계 ORM 프레임워크가 중간에서 매핑해줌 대중적인 언어에는 대부분 ORM 기술이 존재 즉, SQL Query가 아닌 직관적인 코드(메서드)로서 데이터를 조작할 수 있다. ex) Select * from member; 이를 ORM을 사용하면 member.findAll()이라는 메서드 호출로 데이터 조회가 가능하다. 🤔 JPA? (Java Persistence API) 한마디로 ORM을 사용하기 위한 인터페이스를 모아둔 것 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 결국 인터페이스이기 때문에 JPA를 사용하기 위해선 ORM 프레임워크를 사용해야함 🤔 Hi..
Intellij에서 gradle 프로젝트로 lombok import시 test code에서 @slf4j가 인식이 되지 않는 상황이 생겼다. 위 현상을 해결하려면 build.gradle에 lombok build option을 설정해줘야한다. testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' 잘 작동 되는 모습!
- 6월 17일 [ 문제 08번 추가 ] - 6월 18일 [ 문제 09번 추가 ] - 6월 19일 [ 문제 10번 추가 ] 01. 마당서점의 고객이 요구하는 다음 질문에 대해 SQL 문을 작성하시오. -- (1) 도서번호가 1인 도서의 이름 select bookname from book where bookid = 1; -- (2) 가격이 20,00원 이상인 도서의 이름 select bookname from book where price >= 20000; -- (3) 박지성의 총 구매액 select sum(saleprice) from orders where custid = (select custid from customer where name = "박지성"); -- (4) 박지성이 구매한 도서의 수 sel..
재호우96
'분류 전체보기' 카테고리의 글 목록 (2 Page)