공부시간

- TODO
- 복기
책 4 chapter
- 훌룡한 객체지향은 겉만 번지르르하고 협력자들을 무시하는 오만한 객체를 창조하는 것이 아닌 조화를 이루며 적극적으로 상호작용하는 협력적인 객체를 창조하는 것.
- 책임 : 어떤 객체가 어떤요청에 대해 대답해 줄 수 있거나, 적절한 행동을 할 의무가 있는 경우 해당 객체가 책임을 가진다고 할 수 있다.
- 역할 : 협력 안에서 구체적인 객체로 대체될 수 잇는 추상적인 협력자
- 협력 : 다수의 요청과 응답으로 구성된 것.
알고리즘
- DTO ( Data Transfer Object )
- 데이터 전송 및 이동을 위해 생성되는 객체
- Entity
- 데이터랑 소통할 때 사용되는 클래스
controller
정적페이지와 동적페이지
- 정적 페이지
- controller를 거치지 않고 파일을 그대로 클라이언트에 내보내는 것
- @Res
- 동적 페이지
- 서버의 데이터 처리과정을 거치고 난 뒤에 보내는 것?
데이터를 client에 반환하는 방법
- @Response Body?
html로 반환하는게 아니라 그냥 데이터로 반환하겠다는 것을 알려주는 어노테이션
- 데이터를 String으로 내보내면 content type이 text/html로 보여지고
- 데이터를 class로 내보내면 content type이 json으로 바뀌어서 보내진다.
- @RestController => controller + responseBody
jackson
- JSON 데이터 구조를 처리해주는 라이브러리 입니다.
- 일반적으로 spring boot 를 사용하면 적용되어있다.
- Object 를 JSON 타입의 String 으로 변환해줄 수 있습니다.
- JSON 타입의 String 을 Object 로 변환해줄 수 있습니다.
Path Variable과 Request Param
- Client 즉, 브라우저에서 서버로 HTTP 요청을 보낼 때 데이터를 함께 보낼 수 있습니다.
- 서버에서는 이 데이터를 받아서 사용해야하는데 데이터를 보내는 방식이 한 가지가 아니라 여러 가지가 있기 때문에 모든 방식에 대한 처리 방법을 학습해야합니다.
- pathVariable == path에 변수가 기입되는 것
- RequestParam == request parameter
- map과 같은 형식으로 key, value형태로 들어옴
HTTP 데이터를 객체로 처리하는 방법
- @ModelAttribute
- 요청으로 들어온 body의 값을 클래스와 대조해서 객체로 만들어 준다.
- 객체에는 생성자 OR Setter 필수
- 생략 가능
- @RequestBody
- http body부분에 json형식으로 넘어 왔을 때 사용하는 어노테이션
- Spring에서 어노테이션을 인식하는 과정
- 원시타입은 @RequestParma이나 @PathVariable로 인식
- 참조타입은 @ModelAttribute로 인식
SQL
- SQL은 ‘Structured Query Language’ 의 약자로 RDBMS에서 사용되는 언어입니다.
- DDL
- ‘Data Definition Language’ 의 약자로 테이블이나 관계의 구조를 생성하는데 사용
- CREATE
- 새로운 데이터 베이스 및 테이블을 생성해 준다.
- ALTER
- 데이터베이스와 테이블의 내용을 수정할 수 있습니다.
- DROP
- 데이터베이스와 테이블을 삭제할 수 잇습니다. 데이터 및 테이블 전테를 삭제합니다.
- TRUNCATE
- 데이터베이스와 테이블을 삭제할 수 있습니다.
- 최초 테이블이 만들어졌던 상태 즉, 컬럼값만 남습니다
- DCL
- ‘Data Control Language’ 의 약자로 데이터의 사용 권한을 관리하는데 사용합니다.
- GRANT
- 사용자 또는 ROLE에 대해 권한을 부여할 수 있습니다.
- REVOKE
- 사용자 또는 ROLE에 부여한 권한을 회수할 수 있습니다.
- DML
- ‘Data Manipulation Language’ 의 약자로 테이블에 데이터를 검색, 삽입, 수정, 삭제하는데 사용합니다.
- INSERT
- 테이블에 새로운 row를 추가할 수 있습니다.
- SELECT
- 테이블의 row를 선택할 수 있습니다.
- UPDATE
- 테이블의 row의 내용을 수정할 수 있습니다.
- DELETE
- 테이블의 row를 삭제할 수 있습니다.
MySQL 한글깨짐 현상
- 인코딩이 utf-8로 안되어 있기에 일어나는 현상
create database DB_NAME default character set utf8 collate utf8_general_ci;
- 회고