JAVA 프로그래밍 입문

Spring 입문 주차 팀 과제 Answer

고을마을 2022. 3. 25. 23:04

JPA 가 무엇인가요?

영속성 관리 도구입니다. 단기 작업용이라 휘발되어도 상관없는 데이터들이 있고, 어딘가에 적어둔 다음 두고두고 이용하는 데이터들이 있는데요. 데이터를 적어두고 관리해주는게 데이터베이스이고, 데이터베이스와 소통을

1) 자바를 이용해서 편하게 하고,

2) 작업이 빠르고 견고하게 일어날 수 있도록 도와주는 녀석이 JPA 라고 생각하시면 됩니다.

 

 

Controller, Service, Repository 가 무엇인가요?

외부 소통 창구가 Controller, 비즈니스 로직을 담당하는 곳이 Service, 비즈니스로직에 필요한 객체와 데이터베이스를 연결해주는 곳이 Repository 입니다. 각자 책임을 분명하게 함으로써 코드를 알아보고 이해하기 쉽게 한 것인데요. 따라서 코드를 작성할 때, 각자에 맞게 코드를 작성해주는게 중요합니다. Controller 는 외부의 요청을 받아 적절한 Service를 순서에 맞게 호출까지만 담당하고, 비즈니스로직은 Service가 처리하도록 합니다. Service는 비즈니스로직을 처리하되, 너무 많은 역할을 짊어짐으로써 Entity 책임이 흐려지지 않도록 주의해야 합니다.

 

 

restAPI의 put 과 patch 는 어떤 차이점이 있을까요? 어떤 경우에 사용하면 좋을까요?

  • 한번에 데이터를 다 바꾸는 것과 일부 데이터만 갱신함
    1. 한번에 데이터를 모두 바꾸는 경우: 마이페이지에서 유저정보를 한번에 업데이트 하는 경우
    2. 일부 데이터만 갱신하는 경우: 어떤 글의 상태값만 변경하는 경우

 

우리가 브라우저에서 구매한 도메인 주소를 입력하면 만들어 놓은 aws EC2 서버까지 전달이 되어서 해당 서버에게 요청을 보낼 수 있습니다. 이 과정이 상세하게 어떻게 진행되는지 그림으로 한번 그려볼까요?

  1. 이에 대한것은 인터넷에 검색해보면 많은 글들을 보실 수 있습니다. 모든 세세한 부분들을 이해하기는 어렵겠지만 큰 맥락만 이해하시고 우리가 현재 작업하는 노드 서버가 어떻게 동작하는지 정도의 간단한 부분만 잘 이해해주셔도 좋습니다.
  2. 도메인주소를 입력해 결과를 보여주기 까지 과정.
    1. 브라우저에 주소를 입력합니다.
      1. 유효한 도메인 주소를 입력한 것으로 가정하겠습니다.
    2. 브라우저에서는 도메인 주소에 따른 실제 서버의 ip를 알기위해 DNS 서버란 곳에 문의를 합니다.
    3. 해당 DNS 서버는 도메인주소가 어떤 IP를 가지고 있는지 알려줍니다
    4. 다시 브라우저는 그 IP주소로 가지고 우리가 띄운 EC2 의 IP를 알게되는 것입니다.
    5. 그래서 EC2 서버로 요청을 보내게되고 EC2에서 띄워놓은 node 서버가 요청을 받아 처리를 하고 응답을 내려줍니다.
    6. 그렇게 서버로부터 받은 응답을 브라우저는 화면에 보여주는 것이지요.
  3. [번외] 그럼 EC2 서버의 도메인주소 말고 로컬에 띄운 localhost:3000 이런건 어떻게 찾아가는 것일까요?
    1. 브라우저의 주소창에 어떤것을 입력하면 먼저 해당 프로토콜이나 주소가 유효한지 검사하는 로직이 있습니다.
    2. 후에 주소가 유효하면 요청을 시작하는데요. 아까처럼 도메인 주소의 경우엔 DNS로, IP주소라면 해당 주소로 바로 요청이 전달되겠죠
    3. 하지만 DNS로 가기전에 거치는 곳이 있는데 OS 에 미리 설정된 주소에 대한 부분입니다.
    4. OS에 따라 다른데 hosts 파일이라고 해서 보통 일반적으로 localhost 는 127.0.0.1 을 가르키도록 이미 설정이 되어있습니다.
    5. 여기서 127.0.0.1은 자기자신을 가르키는데요. 그래서 브라우저는 여러분의 컴퓨터에 띄워놓은 node를 찾아갈 수 있는 것입니다.

참고 ref

  1. https://deveric.tistory.com/97
  2. https://velog.io/@directorhwan59/웹-브라우저에-URL을-입력하고-첫-화면이-출력되기까지