환경설정

온라인 강의

오프라인 강의

01. 기업

02. 개인

  • 백엔드 개발자는 이 정도는 알아야 한다

    1. 컨텐츠 동기와 개요
    2. 버전 관리 시스템과 버전 관리 웹 호스팅 서비스
      • 버전관리 시스템 : git (svn, mercurial)
      • 웹호스팅 서비스 : github (git lab, BitBucket)
      • git gui : git kraken (github desktop, source tree)
    3. 개발 프로세스 정립
      • 이슈 관리 도구 : github issues & project (Trello, Google 스프레드시트, Asana, JIRA)
      • 브랜칭 모델 : git-flow
    4. API 설계 원칙과 직렬화 포맷 결정
      • API 설계 : REST API (HTTP API, GraphQL)
      • 직렬화 포멧 : JSON (XML, YAML, Protocol Buffer)
    5. 사용자 인증 방식 결정
      • 인증 정보 위치 : Authorization (request body, query parameter, cookie)
      • 인증 스키마 : JWT (Basic, OAuth 1.0a Bearer, OAuth 2.0 Bearer, JWT, JWT with Bearer, Digest, HOBA)
    6. API 스펙 설계와 문서화 방식 결정
      • API 문서화 (Open API 스펙) : Gitbook (SwaggerHub, ReDoc, Slate)
    7. 어플리케이션 기술 스택 결정과 Hello World 서버 작성
      • 언어 : Java
      • 프레임워크 : SpringBoot
    8. 의존성 관리 도구 결정
      • 의존성 관리도구 : gradle
    9. Compute Engine 결정과 Hello World 서버 배포
      • Compute Engine : AWS
    10. 데이터베이스 선정과 인스턴스 시작
      • 데이터베이스 엔진 : MySQL
      • 데이터베이스 : RDS
    11. 배포 자동화
      • 배포 자동화 : Jenkins / CodeBuild (Travis CI, Circle CI, Amazon CodeBuild)
    12. 어플리케이션 레벨 의사결정
      • Request Data Visualization Tool : schematics (jsonchema, schema, cerberus, voluptuous)
      • SQL 쿼리 처리 방식 : JPA
      • MySQL Dirver : mysql-java
      • 터미널 표준 출력 color : termcolor
    13. 웹 어플리케이션 개발
    14. 테스트에 대한 이야기와 의사결정
      • 테스트 프레임워크 : "jUnit"
    15. 테스트에 대한 고민
    16. RDS 인스턴스에 새로운 Security Group을 만들어 연결
  • 백엔드 개발자를 꿈꾸는 학생개발자에게

  • Subicura

    기타 툴

  • Zeplin

  • Sketch

  • upsource

  • swagger