일상

개발을 공부하다보면 정리하고 싶을때가 있다.

기록하는_새싹개발자 2019. 5. 6. 02:50

한번씩 그런 때가 있다.

백엔드와 프론트엔드 구조로 개발할 때 고려할 수 있는 구성

백엔드리스로 프론트엔드만 가지고 개발할 때 고려할 수 있는 구성

이런것들을 쭉 놓고, 각자의 장단점을 기술해서, 어떤 상황에 어떤 구성을 쓰면 좋을지 표로 정리하면 좋겠다는 생각.

예를 들면 이런 식이다.

 

백엔드

  스프링부트 장고 / 플라스크 루비 온 레일즈 노드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 권한관리

데이터 총량 제한

인덱싱 설정

 

 

위 표들만 완성되고나면 어떤 툴을 쓰던간에 로직생각 -> 코드작성 속도가 빨라져 빠른 개발이 가능하다. 극단적인 프로 코더가 될 수 있다.

사실 모든 프레임워크에 숙련되어있다면 이런 표가 필요없겠지만... 또 누군가 이미 만들어둔 표가 있을 것 같기도 하고..(누가?)

하지만 써봐야 배울 수 있는 부분들도 존재하고, 그런 부분들을 한번쯤은 보고 익혀야 툴들의 장단점과 강약점을 잘 알 수 있으며, 어느 순간에 어떤 것을 사용할지 손쉽게 정할 수 있다.