본문 바로가기
Project/Stack Over Flow-Clone

[7일차 작업일지] API와 전반적인 복습의 시간..

by 2D3 2022. 10. 29.
728x90

오늘 하루 일정

# 하루 일정

# 오후: API공부 / 공부한 것 키워드로 정리

 


 

애너테이션 정리

@getter, @setter
접근제어자가 포함되어 있는 객체의 변수의 데이터 값을 추가하거나 수정하고 싶을 때

@getter
설정한 변수 값을 읽어오는 데 사용

@setter
데이터 값을 변경 가능하게 해줌

 


 

헷갈리는 개념 정리

오늘은 개념적인 부분을 계속 봤기 때문에 상당히 많다...🥲🥲🥲

 

# enum: 서로 연관된 상수들의 집합

사용방법
1. 데이터들 간의 연관관계 표현
2. 상태와 행위를 한곳에서 관리
3. 데이터 그룹관리

 

# 멱등성
같은 연산을 여러 번 적용해도 결과가 달라지지 않는 성질

 

✨REST(Representational State Transfer)
요청으로 표현을 보다 명확하게 하는 것
HTTP를 잘사용하기 위한 아키텍쳐 스타일
URI와 HTTP 메소드를 사용해서 자원과 행위를 표현

✨REST API
REST한 방식으로 데이터를 상호교환하게 설계된 API


✨API: 응용프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

 

✨REST API를 사용한 프론트와 백의 데이터 교환 과정(연동)

프론트: http request (get/post...) 를 톰캣으로 보냄
😸톰캣: 프론트에서 받은 http request를 스프링 컨트롤러로 보냄
🌿스프링: 톰켓에서 받은 http request를 처리한 후 http response를 톰캣으로 보냄
😸톰캣: 스프링에서 받은 http response 를 프론트로 보냄
프론트: 톰캣에서 http response 를 받아 화면에서 처리

 

# 동기식 처리(Synchronous)
코드의 연산이 끝난 후 응답을 받아야 다음 연산이 진행

# 비동기식 처리(Asynchronous)
연산이 종료되지 않더라도 대기하지 않고 다음 연산을 진행한다.

 

# 제어자(Modifier)
클래스, 필드, 메서드, 생성자 등에 부가적인 의미를 부여하는 키워드

 

접근 제어자 public, protected, (default), private
기타 제어자 static, final, abstract, native, transient, synchronized 등

 

접근 제어자 클래스 내부 패키지 내부 다른 패키지의 하위 클래스 패키지 외부
private O X X X
default O O X X
protected O O O X
public O O O O

 

메서드명 반환 타입 주요 내용
toString() String 객체 정보를 문자열로 출력
equals(Object obj) boolean 등가 비교 연산(==)과 동일하게 스택 메모리값을 비교

 

클래스>메서드>인스턴스/객체

 


 

애매한 상황 해결하기

하나의 페이지에서 다른 종류의 데이터(글, 댓글) 2개를 호출해야 될 때

1. 두 개를 1번의 API로 받는다

장점
http 요청수 감소
DB 연결수 감소

단점
글과 댓글 목록이 필요한 경우 API를 새로 생성해야 됨 (총 3개의 API)
특정 Application 의존적

2. 데이터 별로 2번의 API로 받는다

장점
유지보수 용이
비동기식 처리로 하면 성능에서 유리할 수 있음
재사용 가능

단점
HTTP 요청수 증가
DB 연결수 증가

 


 

진행 상황

API를 공부하고 답변 투표 기능 API를 만드려고 했는데..

API를 공부하다 보니 기본 개념을 더 채워야 겠다는 생각이 들었고, 부트캠프 기간이 끝나고 모르는 부분을 채워나가기 용이하게 하려고 공부한 것을 키워드별로 정리했다.

정리하면서 다시 내용 읽어보고 이해하고 하다보니 시간이 생각보다 오래 걸렸다. 그래도 의미있는 작업이라 뿌듯하다ㅋㅋㅋㅋㅋ

내일은 DB 공부하고 투표 기능 만들어야지~~!

 

728x90

댓글