코드스테이츠_국비교육/[Section2] 40

34.05_[Spring] Spring Framework_IoC, DI_22.10.11

IoC(Inversion of Control) >의미 : '애플리케이션 흐름의 주도권을 Spring이 갖는다'를 의미함. 특정 클래스에서 new 키워드를 통해 다른 클래스의 객체를 생성하고 이를 참조하면, 의존 관계가 성립됐다고 볼 수 있다. 객체A가 객체B를 사용해야 할 때, 객체A는 객체B에 의존성이 있다. 이런 경우, 객체A 내에 객체B의 인스턴스, 즉 `new 객체B( )`를 통해서 의존성을 개발자가 만들어 쓴다. 하지만, IoC(제어권 역전)가 일어난 상황에서는 의존성을 개발자가 new를 통해 만들지 않고 외부에서 가져온다. 여기서 '외부'란, 직접적으로 객체를 제공하는 환경(클래스)을 의미한다. DI(의존성 주입)는 의존성을 외부에서 가져올 뿐만 아니라, 아예 생성자를 통해 주입받는 경우이다...

34.04_[Spring] Spring Framework 주요 특징&POJO_22.10.11

Spring Framework >주요 특징 POJO(Plain Old Java Object) IoC(Inversioin of Control)/DI(Dependency Injection) AOP(Aspect Oriented Programming) PSA(Portable Service Abstraction) Spring Framework는 POJO 프로그래밍을 지향하는 Framework이다!! >Spring Framwork Triangle : Spring Framwork의 주요 특징을 잘 나타내는 모식도 POJO(Plain Old Java Object) >의미 : 자바 이외의 것들에 종속되지 않는다. : 다른 기술, 다른 라이브러리에 종속되지 않는다. : 기본 자바의 기술로만 개발을 한다. >IoC/DI, ..

34.02_[Spring] Spring Framwork_22.10.11

프레임워크는 건물의 뼈대이다. 건물의 뼈대가 실제로 있다면 다양한 종류가 있을 것이다. 예를 들면, 목조 건물을 위한 나무 뼈대, 고층 빌딩을 짓기 위한 철근 뼈대 등 이처럼 건물의 목적과 뼈대를 이루는 재료에 따라 뼈대의 종류는 다양해질 것이다. 프레임워크도 똑같다. 프로그램의 목적과 프레임워크를 이루는 프로그래밍 언어에 따라 종류가 다양하다. 내가 부족하여 자세한 목적은 아직 모르지만, 어떤 프로그램을 만드냐에 따라 django, flask, express, lalavel 등의 프레임워크가 존재한다. 또한, 이들은 각가 파이썬, node.js, php 등의 프로그래밍 언어로 이루어져 있는 프레임워크이다. Spring 프레임 워크는 java로 이루어져 있고 동적인 웹 사이트, 즉 웹 어플리케이션 개발을..

34.01_[Spring] Framwork, Library_22.10.11

Framework >의미 : 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공 하는 것 : 프로그램이 건물이라면, 프레임 워크는 건물의 뼈대 및 구조라고 할 수 있다. 프레임워크를 사용한다는 것은 건물의 뼈대 및 구조를 제공받아 사용한다는 의미와 같다. >장점 : 효율적으로 코드 작성 가능 : 정해진 규약이 존재하기 때문에, 코드의 파악 및 확장, 그리고 유지보수가 쉬움 >단점 : Framework를 사용하기 위해서는 해당 Framework를 학습해야함. : 자유롭고 유연한 개발이 어렵다. >Library : 프레임워크가 큰 틀을 제공한다면, 라이브러리는 세부적인 부품을 제공한다. : 프레임워크가 건물의 뼈대 및 구조라면, 라이브러리는 문, 창..

32.02_[DB] Practicing Schema_22.10.06

계획 1. 유저 정보에는 ID, PW, 이름, 생년월일을 저장한다. 2. 해당 유저는 구매한 이력(목록), 찜 목록, 본인 장바구니, 본인이 작성한 리뷰를 볼 수 있다. 3. 제품은 제품명, 제품 가격, 제품 사진, 제품 설명을 저장한다. 4. 해당 제품이 어떤 업체의 제품인지 알 수 있게 한다. 5. 업체는 업체명, 업체IP주소, 업체 전화번호를 저장한다. 6. 장바구니는 어떤 유저가 어떤 물건들을, 얼만큼 얼마의 가격만큼 담았는지 저장한다. 7. 구매 목록은 해당 유저가 어떤 물건들을 샀는지, 그리고 해당 물건들이 어떤 유저에게 팔렸는지 모두를 저장한다. //제품의 판매량, 인기도를 파악하기 위함. 7.1. 구매 목록은 구매했던 물건 갯수와 총 금액을 같이 저장한다. 8. 찜 목록은 해당 유저가 어떤..

32.01_[DB] Desiging Schema_22.10.06

용어 설명 (관계형 데이터베이스를 기준으로 설명) >Schema : 데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티 간의 관계에 대한 설명 : 데이터베이스의 청사진이라고 생각 >Entity : 자바의 객체같은 개념 : 고유한 정보의 단위이다. 엔티티는 그냥 엔티티구나~라고 알고 있자 : 하나의 테이블을 엔티티로 볼 수 있다. >Feild : column 들이 feild의 일종이다. : 최대 저장 용량을 지정해줘야 한다. >Record : 하나의 row가 하나의 record이다. >Primary Key : 일반적으로 각 table에는 record 하나를 가리킬 수 있는 ID라는 필드가 존재한다. : ID 필드처럼 각각의 record를 지칭하며 변하지 않는 값이 해당 테이블의 primary key..

31.02_[DB] SQL, NoSQL_22.10.05

관계형 데이터베이스 : SQL을 기반으로 한다. : 관계형 데이터베이스는 구조가 고정된, 구조화된 데이터베이스라고도 한다. : 테이블의 구조와 데이터 타입 등을 미리 정의하고, 정의된 형태의 데이터만 데이터베이스에 저장할 수 있다. : 이런 고정된 구조는 마치 표와 같아서 엑셀과 유사하게 생각하면 좋다. (머릿속에 관계형 데이터베이스를 그린다면 그냥 엑셀을 떠올려도 무관할 정도!) : 관계형 데이터베이스 내 테이블 간의 관계는 직관적으로 파악할 수 있다. 이를 스키마가 뚜렷하게 보인다고도 한 다. 또 이 말의 다른 의미로는 SQL을 활용해 원하는 정보를 query할 수 있다는 말과 같다. 비관계형 데이터베이스 : NoSQL을 기반으로 한다. (Not Only SQL) : 관계형 데이터베이스와는 반대의 특..

31.01_[DB] 데이터베이스 개요_22.10.05

데이터베이스 >의미 : 데이터에 특화된 서버라고 생각 : 엑셀과 상당히 유사하다(사실 엑셀과 비슷한 것은 관계형 데이터베이스이다.) >필요성 : 아래 두 방법으로도 데이터를 저장할 수 있지만, 한계가 있기때문에 데이터베이스를 사용한다. 1. In-memory : 클라이언트와 서버는 종료하면 데이터가 없어진다. 2. File I/O : 서버의 file을 이용을 하더라도, file은 모든 데이터를 가져와야하기 때문에 필요한 데이터만 가져올 수 없다. 때문에 서버 에 부하가 생긴다. >정보 전달 과정 1. 클라이언트: 요청 2. 서버: Query문을 데이터베이스에 전달 3. 데이터베이스: 필터링 및 데이터 전달 SQL >의미 : Structured Query Language : 데이터베이스 용 프로그래밍 언어..

30.02_[HTTP] REST API_22.10.04

API : Application Programming Interface : 개발자가 프로그래밍 언어로 짠 프로그램을 제어하는 인터페이스 : 구현되어 있는 모든 기능 중에서 원하는 기능을 쓸 수 있게 만든 것 : 규격이 다른 두 프로그램을 이어주기 위한 매개체 >WEB API : 클라이언트와 서버의 매개체 REST API >의미 및 목적 : 핵심은 '리소스 식별'이다. (여기서 리소스는 URI이다.) : 대상을 HTTP URI로 표현한다. : 행위를 HTTP methods로 표현. =>즉, HTTP URI와 HTTP methods만 보고 직관적으로 유추가 되는 것이 RESTful한 API라고 볼 수 있다. REST 성숙도 모델(REST API 디자인을 위한 4단계 모델) >0단계 : 단순히 HTTP 프로토..

30.01_[HTTP] HTTP message_22.10.04

HTTP message >의미 : 클라이언트와 서버 사이에서 데이터가 교환되는 방식 : 요청(Requests)과 응답(Responses)으로 종류가 나뉜다. : HTTP message는 구성 파일, API, 기타 인터페이스에서 자동으로 완성함. >message 구조 : head, body로 나뉜다. : head는 start line(status line)과 HTTP headers를 뜻한다. : body는 payload(사용에 있어서 전송되는 데이터)를 뜻한다. start line(status line) : 첫 번째 줄에 위치 : 요청의 상태를 나타냄 HTTP heaeders : 헤더들의 집합 : 요청을 지정하거나, 메세지에 포함된 본문을 설명 empty line : HTTP heaeders와 body를 ..