전체 글 333

23.02.06 - 02.12 -WIL

주제 : DI, IoC, Bean IOC기반 (Inversion of Control) - 일반적인 프로그램에서는 모든 작업을 사용자가 제어하는 구조였음 - IOC가 흐름의 구조를 바꾸었고, 이것은 제어의 흐름을 사용자가 컨트롤 하지 않고 위임한 특별한 객체에 모든 것을 맡김 - 즉, IOC란 기존 사용자가 모든 작업을 제어하던 것을 특별한 객체에 모든 것을 위임하여 객체의 생성부터 생명주기 등 모든 객체에 대한 제어권이 넘어 간 것을 IOC, 제어의 역전 이라고 한다 DL (Dependency Lookup) - 의존성 검색 - 컨테이너에서는 객체를 관리하기 위해 별도의 저장소에 빈을 저장 - 개발자들이 저장소에 저장되어있는 빈을 컨테이너에서 제공하는 API를 이용해 사용하고자 하는 빈을 검색하는 방법 D..

Spring - 9일차

Spring Framework IOC기반 (Inversion of Control) - 일반적인 프로그램에서는 모든 작업을 사용자가 제어하는 구조였음 - IOC가 흐름의 구조를 바꾸었고, 이것은 제어의 흐름을 사용자가 컨트롤 하지 않고 위임한 특별한 객체에 모든 것을 맡김 - 즉, IOC란 기존 사용자가 모든 작업을 제어하던 것을 특별한 객체에 모든 것을 위임하여 객체의 생성부터 생명주기 등 모든 객체에 대한 제어권이 넘어 간 것을 IOC, 제어의 역전 이라고 한다 DL (Dependency Lookup) - 의존성 검색 - 컨테이너에서는 객체를 관리하기 위해 별도의 저장소에 빈을 저장 - 개발자들이 저장소에 저장되어있는 빈을 컨테이너에서 제공하는 API를 이용해 사용하고자 하는 빈을 검색하는 방법 DI ..

spring - 8일차

JPA 심화 영속성 컨택스트 (= 엔티티 매니저) 엔티티를 영구적으로 저장하는 환경 어플리케이션 = DB에서 가져온 데이터 or 객체 보관 엔티티 매니저를 통해 엔티티를 조회, 저장 할 때 엔티티를 보관&관리 JAP 엔티티의 상태 비영속성 (New) - 영속성 컨택스트와 전혀 관계 없음 (Java 객체 상태) 영속 (Managed) - 엔티티 매니저를 통해 엔티티가 영속성 컨택스트에 저장되어 관리되는 상태 - 이 경우 데이터의 생성, 변경 등을 JPA가 추적하면서 필요시 DB에 반영 준영속 (Detached) - 영속성 컨택스트에서 관리되다 분리된 상태 삭제 (Removed) - 영속성 컨택스트에서 삭제된 상태 1차 캐시 - 영속성 컨택스트 내부의 1차 저장소라고 생각 => Db에 여러번 방문해야하는 작..

spring - 7일차 (JPA)

JPA (Java Persistence API) - 자바의 ORM 기술의 표준이다. - 자바 ORM에 대한 API 표준 명세로써 인터페이스의 모음 - 따라서, JPA를 사용하기 위해선 ORM 프레임워크를 선택해야 한다. (가장 대중적인 것은 하이버네이트) - SQL을 직접 다루는 것이 아니라 JPA를 통해 SQL를 다루게 되는 것 여기서 ORM 이란?! ORM (Object-Relational Mapping) - 객체와 관계형 데이터베이스를 매핑한다는 뜻! - ORM은 프레임 워크로써 객체와 테이블을 매핑해 패러다임의 불일치를 개발자 대신 해결해준다. - 객채는 객체대로, DB는 DB에 맞도록 설계가 가능하다! 고로, 우리는 이를 매핑하는 방법만 잘 전달해주면 된다! JPA 동작과정 - JPA는 애플리케..

spring - 6일차

Annotation - 자바 소스코드에 추가하여 사용할 수 있는 메타데이터의 일종 - 클래스와 메서드에 추가하여 다양한 기능을 부여 - Annotation 사용으로 코드량이 감소하고 유지보수가 쉬우며 생산성이 증가한다. Annotation 정리 종류 기능 @Controller spring 에게 해당 class가 controller의 역할을 한다고 명시 @RestController @Controller에 @ResponseBody가 추가된 것으로, Json 형태로 객체 데이터를 반환 (최근, 데이터 응답으로 제공하는 REST API를 개발할 때 주로 사용하며 객체를 ResponseEntity로 감싸서 반환) @RequiredArgsConstructor 초기화 되지 않은 final 필드나, @NonNull이 ..

spring - 5일차

Spring Class 별 역할 Controller 화면(view)과 비지니스 로직(Model)을 연결하는 다리 역할 (MVC를 기반으로 하고 있다.) => 화면에서 /aaa 로 가줘! 하면 Controller는 /aaa를 받아들여 해당 주소로 이동 자세하게 구분을 하면 Front Controller와 Controller로 구분 할 수 있다 - Front Controller : 사용자의 모든 요청을 전달 받는 곳 - Controller : 요청에 따라 적절한 view 페이지 or 적절한 컨트롤러 호출 @Controller를 사용해 해당 클래스가 Controller 인 것을 알림 URL이 아닌 URI로 요청을 받는다 (위치로 찾아가게 하는 것이 아니라 아이디 맵핑을 한다 즉, 사용자에게 파일이름, 위치 노..

spring - 4일차 (메모장 만들기)

API 설계 기능 Method URL Request Response 게시글 목록 조회 GET /api/notices - LIst 게시글 작성 POST /api/notice username, title, content password Notice 게시글 조회 GET /api/notice - Notice(user) 게시글 수정 PUT /api/notice/{id} password Update Notice 게시글 삭제 DELETE /api/noice/{id} password 삭제완료 : true 삭제실패 : false prtoject 생성 완료 후 서버가 잘 열리는디 확인을 한 후 시작을 해야한다!! project 생성 시 깃허브에 연결을 하지 않았는데, 자동으로 깃허브에 연결이 되어 project가 생성되는..

23.01.30 - 02.05 -WIL

상속 기존의 클래스를 사용해 새로운 클래스를 작성하는 것이다 두 클래스를 부모와 자식으로 관계 맺음 (기존 = 부모, 신규 = 자식) extends 를 사용해 관계 맺음 class Parent {} class Child extends Parent {} 상속의 조건 자손은 조상의 모든 멤버를 상속 생성자와 초기화 블럭은 제외 자손의 멤버 개수는 조상보다 적을 수 없다! (많거나 같음) 자손의 변경은 조상의 변화에 영향이 없음 Java는 단일 상속만 허용한다! 비중이 높은 클래스 하나만 상속관계로 하고 나머지는 포함관계를 사용하여 풀어낼 수 있다 인터페이스 추상 메서드의 집합체 (구현된 것이 전혀 없는 설계도) 모든 멤버가 public 상수 이외의 클래스 변수(cv), 인스턴스 변수(iv)는 가질 수 없다 ..

728x90