기록하는 개발자

[항해 3주차] WIL; Restful API, package.json 본문

공부 일기장/WIL

[항해 3주차] WIL; Restful API, package.json

hannah1009 2022. 1. 28. 12:18
728x90

0. 처음으로 하게된 개인 프로젝트

 개인으로 하는 것이기 때문에 본인이 하고 싶은것을 온전히 할 수 있는 장점이 있지만, 하지 못하게 된다면 그 책임은 자신에게 있는 단점도 있다. 하지만 나에게는 오로지 장점으로 다가온 시간 이었다. 프로젝트 아이디어부터 구현하고 싶은 기능까지 고민하는 시간은 5분도 채 걸리지 않았다. 회의할 필요도 없을 뿐더러 그 기능이 왜 필요한지 설명할 시간도 불필요했기에 개발하는 시간으로 3일을 꽉 채워 빠르게 끝마쳤다. 

 

 나는 알고리즘 주에서 생각해 왔던 아이디어인 코딩테스트 게시판을 만들었다. 내가 풀은 문제, 풀고싶은 문제를 정리하고 싶었기 때문이다. ( 프로그래머스에서 왜 이 기능이 없는건지 이해가 되질 않았다. )


 

 

1. 이전 프로젝트와 다른 점

 만약 재미와 고통을 같이 섞어 만든 국밥이 있다면 개인 프로젝트일 것이다. 늘어지면 말아먹는다는 생각으로 플러스 요소를 더 해, 개발하고자 했다. 서버를 먼저 셋팅했기 때문에 기능 개발이 끝나고 바로 제출 할 수 있었다. 

 

그전 프로젝트 진행 방법

아이디어 -> 기능 개발 -> view 개발 -> 서버 연결 -> 배포

 

지금 개인 프로젝트 진행 방법 (이미 아이디어 있었음)

서버셋팅 -> 기능 개발 -> view 개발 -> 배포

 

이로써 불필요한 시간 낭비를 효율적으로 줄일 수 있었다. CS 팀원이나, 이번주 팀원 위와 같은 방법으로 개발하면 더 빠를 것이라고 공유했다.


 

2. REST api 

 내가 첫 항해톡때 발표 주제로 선정했던 것이다. 그만큼 개발에 관심이 있다면 귀에 못이 박히도록 듣는 개념 중 하나이다. 발표 때, 나는 이것을 기계끼리 이야기하는 정형화된 규범이라고 설명했다. 서로 빠르게 알아들을 수 있도록 규칙을 만들어 그것을 지키는 것이다. 그렇다면 기계끼리는 어떻게 대화를 할까? 바로 요청과 응답이다. 정형화된 규칙으로 요청하고 그 요청에 대한 응답을 정해진 코드로 반환한다. 따라서, 컴퓨터도 이해하기 빠르고 그것을 확인하는 개발자도 쉽게 파악할 수 있도록 도와준다.

 

 이번 개발에서 RESTful 하게 개발하려고 노력했다. url에는 동사를 적지 않아 요청 방식이랑 중첩되지 않도록 하고 url만 보더라도 무엇을 요청하는지 뚜렷하도록 작성했으며 마지막으로 정해진 기능을 사용했다. 사실, 이 부분은 강의에 나와있는 내용이라 따라하기 어렵지 않았다.


 

3. package.json

{
  "name": "blog",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.2",
    "mongoose": "^6.1.8"
  }

 다음주차에 진행하게 될 blog 프로젝트 git repo를 만들며 npm 를 인스톨 했다. 프로젝트 정보와 패키지가 뭐뭐 있는지 확인할 수 있다. 

 사실 이건 dependency 버전 확인용으로 잠깐 보는 파일 같다. 내가 체크한 건 ^과 ~인에,  ~는 패치버전까지 변경을 허용하고, ^는 마이너버전까지 변경을 허용한다는 것이다.


 

 

4. 마치며

 저번주차 알고리즘 땐, wil 작성을 굉장히 대충 때웠는데 이번에는 자세히 느낀점을 적고 싶었다. 사실 지금 기분은 빨리 다음주차 blog 프로젝트를 빨리 시작하고 싶다. 회원가입, 로그인, CRUD 댓글을 필수 기능으로 개발해야하는 프로젝트인데, 댓글 추가 like 기능, 스웨거까지 사용해야해서 얼른 시작해야겠다.

 

Comments