[ TIL ] 20240117

선호·2024년 1월 17일

공부시간

  • TODO
  • 책 ( 객체지향의 사실과 오해 )
    - [x] 4챕터 20페이지 이상 읽기
  • 알고리즘
    - [x] 3문제 이상 풀기
  • Spring
    - [x] 스파르타 spring 강의 1주차 전부 듣기
  • 복기
  • 책 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 를 사용하면 적용되어있다.
    - ObjectJSON 타입의 String 으로 변환해줄 수 있습니다.
    - JSON 타입의 StringObject 로 변환해줄 수 있습니다.

  • 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;
  • 이와 같은 코드를 입력함으로써 db에 한글을 넣을 수 있게 된다.
  • 회고
  • 건강적으로 정신적으로 상태가 점점 힘들어진다. 좀 챙겨야겠다.
  • Spring 강의가 생각한것보다 만족스러워서 상태가 만족스럽다.
profile
개발을 하더라도 탄탄하게

0개의 댓글