코드 그라데이션

첫 번째 과제 개념정리 본문

Java/후발대

첫 번째 과제 개념정리

완벽한 장면 2023. 2. 13. 20:10

Q1. JPA는 무엇인가?

JPA는, SQL을 쓰지 않고 데이터를 생성, 조회, 수정, 삭제할 수 있도록 해주는 번역기입니다.영속성 관리 도구입니다. 단기 작업용이라 휘발되어도 상관없는 데이터들이 있고, 어딘가에 적어둔 다음 두고두고 이용하는 데이터들이 있는데요. 데이터를 적어두고 관리해주는게 데이터베이스이고, 데이터베이스와 소통을 1) 자바를 이용해서 편하게 하고, 2) 작업이 빠르고 견고하게 일어날 수 있도록 도와주는 녀석이 JPA 라고 생각하시면 됩니다.

Q2. Restful API란?

RESTful은 REST의 설계 규칙을 잘 지켜서 설계된 API를 RESTful한 API라고 합니다. 즉, REST의 원리를 잘 따르는 시스템을 RESTful이란 용어로 지칭합니다.

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

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

Q4. restAPI의 put 과 patch 는 어떤 차이점이 있을까요?

어떤 경우에 사용하면 좋을까요?

• 한번에 데이터를 다 바꾸는 것과 일부 데이터만 갱신함

1. 한번에 데이터를 모두 바꾸는 경우: 마이페이지에서 유저정보를 한번에 업데이트 하는 경우

2. 일부 데이터만 갱신하는 경우: 어떤 글의 상태값만 변경하는 경우

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

1). 이에 대한것은 인터넷에 검색해보면 많은 글들을 보실 수 있습니다.

모든 세세한 부분들을 이해하기는 어렵겠지만 큰 맥락만 이해하시고

우리가 현재 작업하는 노드 서버가 어떻게 동작하는지 정도의 간단한 부분만 잘 이해해주셔도 좋습니다.

 

2). 도메인주소를 입력해 결과를 보여주기 까지의 과정.

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를 찾아갈 수 있는 것입니다.

Q6. Rest란?

• 서버의 응답이 JSON 형식임을 나타냅니다. • HTML, CSS 등을 주고받을 때는 Rest 를 붙이지 않습니다.

Q7. RDBMS란, H2란, SQL 이란? 

RDBMS, 줄여서 RDB는 관계형 데이터베이스를 말합니다. 정보 저장소라고 생각하셔도 무방한데요.

• 쇼핑몰이라면 주문 정보, 고객 정보 등을 컴퓨터에 저장해야 할텐데, 이걸 도와주는 녀석입니다.

• H2는 RDBMS의 한 종류로, 서버가 켜져있는 동안에만 작동하는 RDB입니다.

• SQL은 데이터를 읽고, 저장하고, 변경하고, 삭제하는 구체적인 문법입니다.

Q8. 객체와 클래스의 차이점

클래스(Class)

: 현실 세계의 객체의 속성과 동작을 추려내 필드와 메서드로 정의한 것으로 "아직 메모리가 할당되지 않은 상태

 

객체(Object)

: 이 Class라는 설계도를 기반으로 실제 메모리가 잡힌 것을 의미하며 이런 객체를 조합해 전체 프로그램을 완성해 나가는 방식을 OOP(객체지향 프로그래밍)이라고 합니다.

Q9. 캡슐화, 은닉화 / 상속, 다형성을 설명하시오.

캡슐화, 은닉화

: 외부 객체에서 구현방식은 알 수 없도록 숨기고 별도로 접근할 수 있는 getter/setter 메서드를 통해 접근하도록 하는 방식

 

상속

: 부모 Class를 자식이 접근할 수 있도록 물려 받는 방식

 

다형성

: 부모 클래스 타입으로 해당 부모를 상속받는 여러 자식 class를 대입할 수 있는 성질 등을 들 수 있습니다.

 

728x90
Comments