면접 준비

송민지·2024년 8월 29일

면접준비

목록 보기
1/2

Restful한 API를 설계하는 장점

REST

  • 클라이언트와 서버는 다른 환경에서 개발이 진행됩니다.(같은 레포지토리안에서 개발되기도 합니다만 어쨌든)
  • 각 개발사마다 클라이언트와 서버의 통신 방법이 다르다면, 개발자들은 각 개발팀의 문화에 익숙해질때까지 많은 시간을 보낼 수 있습니다.
  • 이런 낭비를 예방하고자 REST API로 서버와 클라이언트의 request, response 방식이 자리 잡았습니다.

RESTful

  • REST API는 URI와 HTTP 메소드를 이용해 객체화된 서비스에 접근하는 것입니다.
  • REST는 누구나 이해하기 쉬운 표현으로 자원을 표현하고 구분하여 해당 자원의 정보를 주고받는 방식입니다. http://서버주소/요청자원 형식의 URI로 표현되며 http의 POST, GET, PUT, DELETE 메소드를 사용합니다.
  • PUT은 전체 데이터를 수정할때, PATCH는 데이터의 특정 부분을 수정할때 사용합니다.

적절한 관심사 분리가 필요한 이유

  • 개발하면서 관심사의 분리가 되지 않는다면 아마 사진과 같은 코드로 작성될 것 같습니다.

서버에서 보는 관심사

  • 자바스크립트로 작성되었고, 댓글을 DB에 저장할 수 있도록 하는 코드입니다. controller와 service, repository가 하나의 코드로 섞여있습니다.

  • 댓글 기능과 Noti로 명명된 해시태그 기능이 포함되어 있습니다. 이렇게 작성될 경우 다음과 같은 문제들이 발생합니다.

    1. 오류를 잡기가 어렵다.
    2. 코드를 확장하기가(새로운 기능을 추가하기가) 어렵다.
    3. 담당자가 바뀌면 코드 분석 및 적응에 시간이 걸린다.

3번의 경우는 시간이 해결해 줄 수 있습니다. 하지만, 1,2번의 경우에서는 개발팀에 치명적으로 작용할 가능성이 높습니다.

JAVA에서 setter를 무분별하게 사용하면 안되는 이유

  1. 그냥 setter로 작성하면 해당 값을 수정하는건지, 처음으로 생성하는 건지 알 수 없기 때문입니다.
  2. 누군가 무분별하게 값을 수정할 가능성이 있습니다.
  3. 그렇기에 setter대신 해당 메서드가 어떤기능을 하는지를 명시해 줄 필요가 있습니다.

NoSQL과 RDBMS

  • NoSQL은 저장할때 정의된 스키마가 없어 데이터 구조를 미리 정리할 필요가 없습니다.

  • 생성되는 데이터를 한꺼번에, 많이, 빠르게 저장할 수 있습니다.

  • 이러한 이유로 데이터의 일관성은 보장할 수 없습니다.

  • 또한 RDBMS의 join같은 연산을 하기 어렵습니다.

  • NoSQL과 달리 table마다 해당 값을 지정해줘야며, table에 맞게 데이터를 저장합니다.

  • 또한 join, transaction과 같은 기능이 있어 데이터의 일관성을 보장할 수 있습니다.

객체지향 프로그래밍이란

  • 컴퓨터 프로그램은 명령어들의 목록이 아니라 객체들이 하나하나 모인것으로 개발하는 것을 말합니다.
  • 프로그램 개발을 유연하고 변경하기 쉽게 만들어 개발과 보수를 간편하게 할 수 있습니다.
profile
항상 밝게

0개의 댓글