전체 글
-
REST API 적용프로젝트/개발자 지름길 2021. 12. 3. 18:41
나름대로 REST API에 대한 규칙을 세우고 적용해서 API를 개발했다. 개발자마다 정의하는 REST API의 규칙은 다들 조금씩 범주가 다르다. 각자 정의한 REST API 규칙을 따를 뿐이었다. 누군가는 모든 메소드가 post로 작성되더라도 REST API 라고 한다. 누군가는 실제 Database 기준으로 CRUD에 따라 method를 활용해야 한다고 한다. 또 누군가는 client 기준으로 method를 정의해야 한다고 한다. 대기업들도 마찬가지로 REST API 제작자가 설계한 원리를 그대로 따르는 회사는 잘 없다. 그래서 이번 기회에 내 나름대로 REST API에 대해서 최대한 공부해서 규칙들을 정의하고 따랐다. 내가 지킨 규칙들은 다음과 같다. 1. URI는 소문자로 적을 것 2. URI는..
-
알람 기능 구현 (Node.js)프로젝트/개발자 지름길 2021. 12. 3. 13:52
알람 기능 구현을 위해서 youtube 알람 기능을 특히나 참고를 많이 했다. 내가 자주 쓰는 알람 기능이며, 특히나 해당 UI/UX를 사용하면서 불편함을 느낀적은 없기 때문에 참고를 많이 했다. 물론 youtube 외에 naver cafe이나 여기저기 웹을 돌아다니면서 참고를 했다. 구현 알람 기능 구현을 위해서 알람 기능을 쓰기 위한 조건을 고려했다. 여러 API들에서 알람기능을 쉽게 활용할 수 있어야하며, 가져다 쓰기 위해서 소스코드는 짧아야했다. 왜냐하면, 여러 API들 모두에서 알람 기능 구현을 위해서 소스코드가 길어지면 유지보수하기도 어렵고, 알람이 발생하도록 처리하는거 자체도 일이기 때문이다. 그래서 아래와 같이 알람 을 사용할 수 있도록 처리했다. return 값은 단순하게 true/fal..
-
백엔드 인증처리 (Node.js)프로젝트/개발자 지름길 2021. 12. 2. 22:00
인증처리와 관련해서 크게 3가지를 소개하고자 한다. 목차 1. 구현한 인증처리 소개 2. 권한 인증(Authentication) 3. 권한 인가(Authorization) 4. 토큰 사용 5. 화면 권한 제어 6. 인증&인가 처리 로직 7. 마무리 1. 구현한 인증처리 소개 Node.js 인증처리를 router 접근 전 middleware에서 일괄적으로 인증처리 로직을 타도록 설정했다. 기존 방식이나 일반적인 예제 방식을 보면, 인증처리를 router 함수에서 middleware를 별도로 추가하여 인증처리를 했다. 대부분 예제들이 그랬다. 나는 이 방식이 마음에 안들었다. 그 이유는 크게 2가지가 있다. 첫 번째, 모든 API에 대해서 1개씩 인증처리 절차를 추가해야했기 때문이다. 두 번째, 현재 인증처..
-
API 문서 자동화 프로그램...프로젝트/개발자 지름길 2021. 12. 1. 09:56
현재 진행중인 프로젝트에서 모든 API에 대해서 간략한 명세서를 작성해주는 'API 문서 자동화 프로그램'을 만들었다. 프로그램을 만든 이유 1. 최신화 => 이전에 회사를 다니면서 느꼈던거지만 프로그램을 위한 문서들은 항상 최신 상태를 유지하기 어렵다. 왜냐하면, 사람이 누락하는 경우가 종종 생기기 때문이다. 프로그램을 위한 문서는 여럿 존재한다 모든 사항에 대해서 문서화를 다 하기도 힘들고, 새로운 인력이 해당 프로그램을 관리하게 되면 문서 존재 유무조차 모르는 경우가 생긴다. 이러한 부분에 있어서 'API 문서 자동화 프로그램'을 실행하게 된다면, 단 1번의 실행으로 항상 최신 상태를 유지할 수 있는 것이다. 2. 시간 낭비 => 프로그램을 하나 만들고나서 항상 문서를 신경 써줘야 한다는 사실이 정..
-
Node.js & mongoose 컬렉션 히스토리 관리프로젝트/개발자 지름길 2021. 11. 30. 21:45
현재 진행중인 프로젝트 '개발자 지름길'에서는 퀴즈 컬렉션을 등록/수정/삭제에 대해서 히스토리를 관리한다. 나는 히스토리 관리를 위해서 데이터 변경이 일어나는지 감지후, 데이터 변경이 발생하면 히스토리를 새롭게 추가하도록 했다. 이를 위해서 EventEmitter를 이용했다. 그 방법은 아래처럼 코드를 작성하면 특정 'TargetModel'에 대한 change 이벤트를 감지할 수 있다. 신규 입력 시에는 change.operationType 값이 'insert'이며, 수정 시에는 'update'가 나타난다. 이 방법은 mongoose 데이터 저장 함수 save, findAndUpdate, updateMany 등 여러 함수들을 모두 감지할 수 있는 방법이다. 사실 기능은 insert와 update 외에도 ..
-
기술은 목적을 달성하기 위한 수단일 뿐이다프로젝트/개발자 지름길 2021. 11. 11. 14:16
요즘은 이런 생각이 자주 든다. 기술은 그저 목적을 달성하기 위한 수단일 뿐이다. 이 말을 듣기만 하면 누구나 "ㅇㅇ 당연하지" 라는 생각이 들지도 모른다. 그런데 이 말을 내 생활에 적용하기는 어렵다. 프로그램 개발을 하다 보면, '이 기술을 굳이 내가 배워서 적용해야 할까?' 라는 의문이 생기는 순간도 종종 있다. 이럴 때, 다른 사람들도 그 기술을 사용하기 때문에 사용했다면, 나는 당당하게 '그 기술은 배울 필요없다'라고 말하고 싶다. 그 이유는 새롭게 배울 기술이 당장에 필요가 없을 뿐더러, 공부를 하더라도 목적의식이 없는 공부를 하게 되어 점점 공부를 안하게 된다. 어느샌가 공부는 잘 안되고, 프로젝트 진행이 안되는 시기가 찾아오다가 점점 무기력해진다. 사실 내 이야기다. 실제로 웹 사이트를 만..
-
2인 프로젝트 협업 10일차... 그리고 팀원 이탈... ㅠㅠ프로젝트/개발자 지름길 2021. 11. 4. 02:43
프로젝트 시작한지 약 10일 정도 뒤에 팀원이 이탈했다 ㅠㅠ 사유는 취업준비 때문이라고 한다. 팀원은 학과 후배와 함께 진행했다. 약 10일 정도 협업을 했다. 동생은 프론트엔드를 맡았고, 나는 백엔드를 맡았다. 프로젝트 일정은 10월 중순부터 11월 30일 까지로 잡고 있었는데, 갑자기 못하겠다고 이야기를 해서 당황했다. 순간 멘탈이 나가서 이틀 동안 아무 것도 손에 잡히지 않았다. 그래도 프로젝트를 진행 해야겠다고 마음 먹고 다시 프로젝트를 혼자서 진행해 나가기로 결정했다. 사실 협업을 하면서 다소 진행이 느린 부분도 있었지만, 내가 맡은 부분만 하면 되기 때문에 꼼꼼하게 할 수 있었다. 그렇기에 API 문서 자동화 프로그램을 간략하게 만들 수도 있었다. 그 외, REST API에 대해서 조금 더 자..