SW과정 주말 보충 강의 1003(4)

JongseokLee·2021년 10월 3일
1
post-thumbnail

SW과정 주말 보충 강의 1003(4)

1. root-context(DB 관련)

2. IoC컨테이너에 뜨는 항목들

@Component
@Controller(DS)
@RestController(DS)
@Service
@Repository
@Configuration

3. IoC

IoC컨테이너에있는것을 메소드로 주입받을 시 접근할 수 없고 생성자로 주입받아서 접근해야한다.
(주입은 가능한데, 접근은 불가)

4. DAO

데이터베이스에 접근할 수 있는 함수들의 모임
JpaRepository<Board, Integer> ==> JPA에 관련된 함수(CRUD)다 모여있음, 어디에 쓸건지 표시하는게 <>안에 내용임
@Entity // JPA -> ORM -> Object Relation Mapping

5. Insert

기존 insert into ??
현재 Board b = new Board();
boardRepository.save(b);
기존 select * from board where id = 1;
현재 Board b = boardRepository.findById(1);

6. session 유지 시간

1) invalid.date(강제 종료)
2) 관련된 브라우저 다 종료
3) 시간초과

7. doGet, HttpServletRequest

  1. 주소파싱 /board (request 객체안에 있음)
  2. IoC검색 - 해당 주소에 맞는 함수를 찾기
  3. String res = list()함수 호출
  4. 버퍼로 응답(res)

8. ★중요★

application/x-www-form-urlencoded: 키와 값은 키와 값 사이 에 '&',로 구분된 키-값 튜플로 인코딩됩니다 '='. pom태그로 보내는 모든 타입이 바로 이 타입임
MIME 타입이란 클라이언트에게 전송된 문서의 다양성을 알려주기 위한 메커니즘입니다

9. 하이버네이트 (Hibernate)

Hibernate ORM은 Java 프로그래밍 언어를 위한 객체 관계형 매핑 도구입니다. 객체 지향 도메인 모델을 관계형 데이터베이스에 매핑하기 위한 프레임워크를 제공합니다.
GNU 무료 제공

10. 동기/비동기

동기란 프로그래밍에서는 일의 순서를 뜻한다.
비동기 서울가서 뭘 하고와, 저장장치라고 생각함 일주일이 걸림 또 다른 애들한테 일을 시킴 기다리는 동안 또 다른 일을 할 수 있다. 다시 돌아왔을 때 라인으로 돌아가는게 어렵다. 콜백이 어렵다.
콜백 : 다른 일을 하고있을 때 다른 일들이 끝난 결과를 받기가 어렵다. (완료되었을 때 응답을 받기)
데이터에서 동기는 프로그래밍 동기랑 조금 다르다. 데이터의 일체를 의미함
영속화된 데이터를 변경하면 트랜잭션이 종료되는 타이밍에 데이터베이스로 더티체킹한다.
더티체킹 : 데이터 1,000건을 인서트 하고 싶을 때 한개씩하면 1,000번 하드디스크에 접근해야함 그러면 시스템이 굉장히 느려진다. 1,000개가 모였을 때 한번에 체킹하는것이 더티체킹임 -> 영속화된 데이터를 트랜잭션이 종료되는 시점에 flush하여 밀어넣는 것이 더티체킹이다.

11. 게시판 정리

  1. 상세보기

요청 : GET /board/{id}
응답
(1) MIME -> application/json;
(2) 출력예시
{
code : 1,
msg : "성공",
data : {
id: string,
title: string,
content: string
}
}

  1. 전체보기

요청 : GET /board
응답
(1) MIME -> application/json;
(2) 출력예시
{
code : 1,
msg : "성공",
data : [
{
id: string,
title: string,
content: string
},
{
id: string,
title: string,
content: string
}
]
}

  1. 삭제하기

요청 : DELETE /board/{id}
응답
(1) MIME -> application/json;
(2) 출력예시
{
code : 1,
msg : "성공",
data : null
}

  1. 수정하기

요청
(1) 주소 : PUT /board/{id}
(2) 요청바디 application/json
{
"title":string,
"content":string
}

응답
(1) MIME -> application/json;
(2) 출력예시
{
code : 1,
msg : "성공",
data : null
}

  1. 저장하기

요청
(1) 주소 : POST /board
(2) 요청바디 application/json
{
"title":string,
"content":string
}

응답
(1) MIME -> application/json;
(2) 출력예시
{
code : 1,
msg : "성공",
data : null
}

12. 강사님 깃허브

프로토컬 협약 RFC7519 = JWT

포레인키는 N쪽에 삽입한다.
ManytoMany 관계는 절대 ManytoMany관계로 넣지 않는다. 새로운 테이블을 넣을수가 없으므로, 그래서 이러한 관계를 써야할때는 무조건 테이블을 새로 만든다.

리액트 명령어에서 i는 install의 약자

자바스크립트 인터프리터(위에서 아래로 실행), 쓰레드 1개만 있음

async는 await상태에서 cpu가 다른일 하게 잠시 탈출하게 해줌 data매핑이 완료되면 다시 원래자리로 돌아가게 해줌

profile
DataEngineer Lee.

0개의 댓글