개발을 공부하다보면 정리하고 싶을때가 있다.
한번씩 그런 때가 있다.
백엔드와 프론트엔드 구조로 개발할 때 고려할 수 있는 구성
백엔드리스로 프론트엔드만 가지고 개발할 때 고려할 수 있는 구성
이런것들을 쭉 놓고, 각자의 장단점을 기술해서, 어떤 상황에 어떤 구성을 쓰면 좋을지 표로 정리하면 좋겠다는 생각.
예를 들면 이런 식이다.
백엔드
스프링부트 | 장고 / 플라스크 | 루비 온 레일즈 | 노드JS | 파이어베이스 | |
장점 |
빠른 수행속도 국내 많은 개발자 높은 자유도 많은 레퍼런스 |
빠른 생산성 적당한 자유도 핫한 파이썬 기반 |
핵 빠른 생산성 |
빠른 수행속도 빠른 실시간 응답속도 IOT 적용 가능 |
BaaS (기본환경제공) 빠른 개발 가능 푸시기능(앱) CDN |
단점 |
상대적으로 낮은 생산성 알아야 할게 많음 |
적당한 생산성 느린 수행속도 |
느린 수행속도 국내 적은 개발자 적은 레퍼런스 |
잘 죽음 |
프론트가 모든 처리 제한된 환경 NoSQL로 고정된 DB |
프론트엔드(웹)
JQuery | Angular | React | Vue | |
장점 |
간단하고 직관적인 개발 손쉬운 사용 많은 레퍼런스 |
구글 주도 오픈소스 손쉬운 사용 |
페이스북 주도 오픈소스 높은 자유도 유지보수 용이 |
낮은 러닝커브 높은 생산성 |
단점 |
느린 수행속도 난감한 유지보수 |
한물 간 인기 버전간 호환불가 |
높지 않은 생산성 서드파티 라이브러리 필요 상대적 높은 러닝커브? |
수행속도? |
뭐 위에것들도 괜찮긴 한데, 사실 아래에 이게 핵심이다
백엔드 코드 레퍼런스
스프링부트 | 장고 | 루비 온 레일즈 | 노드JS | 파이어베이스 | |
기본 설치방법 | |||||
공식 사이트 | |||||
라우팅 방법 |
@RestController @GetMapping("/new") |
urls.py url(r^'new/',New.asView()) |
routes.rb get '/new', to 'controller#new' |
app.get('/topic/update/:pageId', function(request, response){ } |
??? |
http 요청 | RestTemplate.excute(...) |
POST요청,
컨트롤러/모델/뷰 생성방법
API request, response
서버사이드랜더링
if문, for문, foreach문, switch case문,
배열선언, 사용법
변수전달방법
이벤트 정의, 리스너등록
메세지큐 사용법
대표 유저관리 라이브러리 및 사용법
OAuth Tools
가상머신 모니터링 툴
DB연결
퍼포먼스테스트1 (대용량읽기)
퍼포먼스테스트2 (대용량쓰기)
대표 IDE
철학
DB 레퍼런스
Mysql | MongoDB | Redis | Firebase | |
Create Table | ||||
Read | ||||
Update | ||||
Delete |
User 권한관리
데이터 총량 제한
인덱싱 설정
위 표들만 완성되고나면 어떤 툴을 쓰던간에 로직생각 -> 코드작성 속도가 빨라져 빠른 개발이 가능하다. 극단적인 프로 코더가 될 수 있다.
사실 모든 프레임워크에 숙련되어있다면 이런 표가 필요없겠지만... 또 누군가 이미 만들어둔 표가 있을 것 같기도 하고..(누가?)
하지만 써봐야 배울 수 있는 부분들도 존재하고, 그런 부분들을 한번쯤은 보고 익혀야 툴들의 장단점과 강약점을 잘 알 수 있으며, 어느 순간에 어떤 것을 사용할지 손쉽게 정할 수 있다.