목록전체 글 (796)
코드 그라데이션
@RequiredArgsConstructor @NoArgsConstructor @AllArgsConstucroctor @GenerateValue(stratege = GenerationType.Auto) @GenerateValue(stratege = GenerationType.Identity) @GenerateValue(stratege = GenerationType.Table) @GenerateValue(stratege = GenerationType.Sequence) @MappedSuperClass @PathVariable @Transactional의 쓰임 @RestController @RequestBody 와 @ResponseBody 의 차이. JSON 형식과 JacKson @Column @Table @..
어노테이션의 의미 1) 주석을 의미하는 영어 포현 2) @oooooo 형태로 작성 3) 외부 소프트웨어에 필요한 처리 내용을 전달한다. 인스턴스 생성 어노테이션 - 애플리케이션 만들 때 레이어로 만드는 것이 좋다. 즉 계층화를 하라는 의미이다. 도메인 주도 설계 레이어 개요 애플리케이션 레이어 (Application Layer) 클라이언트와의 데이터 입출력을 제어하는 레이어 도메인 레이어 (Domain Layer) 애플리케이션의 중심이 되는 레이어로서 업무 처리를 수행하는 레이어 인프라스트럭처 레이어 (Infrastructure Layer) 데이터베이스에 대한 데이터 영속성(Persistence Context) 등을 담당하는 레이어 인스턴스 생성 어노테이션(주요) 어노테이션 개요 @Controller 애..
데이터베이스 : 데이터를 보관하기 위한 상자. 특정 규칙을 적용하여 데이터를 정리해서 보관한다. 보통 약칭 DB라고 부른다. 관계형 데이터베이스 : 데이터를 표 형식으로 표현하고, 여러 표에서 항목의 값 사이에 관계를 맺고 있는 데이터베이스. 표는 테이블이라고 부르고 테이블과 테이블 관계를 Relationship이라고 부른다. 관계형 데이터베이스는 가장 일반적으로 사용되는 데이터베이스. 보통 RDB라고 부른다. 테이블 : 데이터베이스 안에서 실제로 규칙을 가진 데이터가 저장되는 상자. 레코드와 칼럼 - 테이블의 세로 열을 칼럼(column) / 가로 행을 레코드(record)라고 한다. [테이블의 제약 조건] 제약 조건의 예 > 제약 조건 개요 NOT NULL NULL 입력을 허용하지 않는다(필수 입력)..
의존성 주입 뜯어보기 : 의존하는 부분을 외부에서 주입하는 것. -- 의존하는 부분 : "사용하는 객체" 클래스에 "사용되는 객체" 클래스가 작성된 상태 -- 외부에서의 주입 : "사용하는 객체" 클래스의 밖에서 "사용되는 객체" 인스턴스를 주입하는 것. - 지금까지는 인스턴스를 생성하는 데에 new 키워드를 사용했지만, 인스턴스 생성과 같은 작업을 프레임워크에 맡길 수 있고, 그 역할을 하는 것이 DI 컨테이너다. *스프링 프레임워크는 임의로 구현한 클래스를 인스턴스로 만들어주는 기능을 제공 => DI 컨테이너가 그 기능을 제공한다. 다섯 가지 규칙 1) 인터페이스를 이용하여 의존성을 만든다. ==> 의존하는 부분에 인터페이스를 이용한다는 것. 2) 인스턴스를 명시적으로 생성하지 않는다. ==> 인스턴..
- 이 두 가지 기능을 애플리케이션 전체에 제공함으로써 생산성/유지보수성이 높은 애플리케이션 구축을 가능하게 한다. 의존성 주입(DI) (Dependency Injection) : 의존하는 부분을 외부에서 주입하는 것 관점 지향 프로그래밍(AOP) (Aspect Oriented Programming) : 다음 두 가지 요소로 구성됨 - 중심적 관심사: 실현해야 할 기능을 나타네는 프로그램 - 횡단적 관심사: 본질적인 기능은 아니지만 품질이나 유지보수 등의 관점에서 반드시 필요한 기능을 나타내는 프로그램. (실현하는 프로그램과 별도로 부수적으로 필요한 프로그램) --ex) 예외 처리 / 로그 정보 화면이나 파일 등으로 출력 처리 / 데이터베이스의 트랜잭션 제어 등 의존성 - 사용하는 객체(A클래스), 사용..
인터페이스 : Java에서 클래스에 포함하는 메서드의 구체적인 내용을 작성하지 않고 상수와 메서드 타입만 정의한 것을 말한다. - 인터페이스는 다른 클래스에서 구현하는 것을 전제로 만들어진다. - 그래서 인터페이스를 선언한 메서드는 암묵적으로 public abstract 접근 제어자가 붙은 추상 클래스라고 불린다. - 인터페이스를 구현할 때는 implements 키워드를 사용한다. - 인터페이스로 정의되는 추상 메서드를 모두 구현할 필요가 있어 구현하지 않는 경우에는 컴파일 에러가 발생한다. - 인터페이스의 추상 메서드는 암묵적으로 public abstract 한정자가 붙기 때문에 구현할 때는 public을 선언해 둘 필요가 있다. @Override : 슈퍼 클래스나 인터페이스의 메서드를 상속 혹은 구현..
스프링 프레임워크의 구성 1. 스프링 부트(Spring Boot) : 스프링 애플리케이션을 복잡한 설명 없이 빠르게 작성하는 기능을 제공한다. 2. 스프링 프로젝트 1) 스프링 MVC : 웹 애플리케이션을 간단하게 생성하는 기능을 제공한다. 2) 스프링 데이터 : 데이터 접근에 관한 기능을 제공한다. 3) 스프링 배치(Spring Batch) : 배치 처리 기능을 제공한다. 4) 스프링 시큐리티(Spring Security) : 인증/허가 기능을 제공한다. 3. 스프링 코어 1) 스프링 DI : 의존성 주입(Dependency Injection) 기능을 제공한다. 2) 스프링 AOP : 관점 지향 프로그래밍(Aspect Oriented Programming) 기능을 제공한다. [스프링부트의 장점] * 웹..
클라이언트와 서버 * 클라이언트 - 서비스를 요청하는 쪽. * 서버 - 서비스를 제공하는 쪽 - 즉 서버가 서비스를 제공해 그 서비스를 클라이언트가 사용하는 관계 웹 서버 - 웹 서버는 항상 실행되며 클라이언트로부터 액세스(요청)을 항상 기다린다. HTTP 통신(프로토콜) - 클라이언트와 웹 서버는 HTTP 요청(request)과 응답(response) 로 상호작용한다. 1) 클라이언트가 브라우저에 URL을 입력한다. 2) 클라이언트에서 웹 서버로 HTTP 요청이 전송된다. 3) 웹 서버는 HTTP요청을 받아 HTTP 요청에 해당하는 HTTP응답을 클라이언트에게 반환한다. 4) 브라우저는 받은 응답을 표시하고 클라이언트가 이를 확인한다. GET 메서드와 POST 메서드 - 전자는 브라우저에서 웹 서버로 ..