Coder Social home page Coder Social logo

prgrms-web-backend-study's Introduction

프로그래머스 웹 백엔드 시스템 구현(Spring Boot)

  • 2021.1.7.(목) ~ 2021.2.11(목) 5주

목표

  • 주어지는 페이스북 구현 프로젝트 소스코드를 기반으로 기능 추가 & 수정하는 미션
  • 함수 하나 추가, 개발이 아닌 시스템 전첵을 보는 안목 향상
  • 실무에서 쓰는 분산 시스템 학습

🤵 LEADER 스터디 리더

  • Harry, 해리
  • Jackson, 잭슨

👩‍💻 실무 웹 개발 팀 처럼 움직이는 스터디

  • 어떠한 회사든 특수 케이스를 제외하고는 이미 운영중인 서비스나 개발하고 있는 기능을 토대로 업무를 담당함
      1. 스터디 리더와 스터디원들 전체가 하나의 개발팀이라고 가정
      1. 프론트엔드는 개발 완료, 백엔드 개발 업무를 담당 & 개발
      1. 실제 실무에서 개발할 때 고민하고 사용하는 기술들을 미션으로 할당
      1. 상호 정기적 코드리뷰를 진행하며 기능을 완성해나감

⚙️ 온라인 + 실무형 미션 + 코드리뷰를 5주간 끊임없이!

  • 주기적인 코드리뷰를 받음!

1주차 - 내 손으로 직접 Maven 기반 Spring Boot 프로젝트 셋업하기

  • Spring 주요 개념 짚고 가기
  • Spring Boot 개론
  • Maven 프로젝트 직접 세팅

IDE는 IntelliJ, Eclipse 둘 중 본인이 편한 것을 써도 된다. 또한, 프로젝트 셋업은 모두 준비된 것을 주어주지 않는다. 앞으로의 미션 수행을 위해 직접 세팅하는 것 이 중요하다. 매번 누가 던져준 환경에서만 개발해본 경우에는 꼭 초반에 셋업 부분을 제대로 이해하고 넘어가야 한다.


2주차 - 인증(Authentication) 과 인가(Authorization)

  • Spring Security를 활용한 인증
  • 서비스 확장 시 Session 기반 사용자 인증의 문제점 알기
  • 장애 대응을 위한 분산서비스 구조
  • Stateless 아키텍처와 JWT(JSON Web Token)

우리는 보통 웹 백엔드 공부를 시작할 때, 쿠키나 세션을 통한 인증 처리 위주로 배우곤 한다. 그런데 실무에선 서비스가 커지면서 이용자가 많아지면 세션이 무척 바빠지면서 서버가 뻗을 수 있다. 세션 없이, 클라이언트의 상태를 저장하며 서비스 안정성을 취할 방법이 없을까? 여기에 대한 답을 찾아보는 시간.


3주차 - 비즈니스 로직 처리(1)

  • API 문서 자동화를 위한 Swagger
  • 비즈니스 로직 개발 시 주의할 점
  • 비즈니스 로직 개발(포스팅 관련 기능 구현)

왜 API 문서를 굳이 만들어야 하는걸까? 안그래도 할 일 많은데...가 아니라, 실무에서 프론트엔드 개발자와 백엔드 개발자의 소통을 위해 반드시 신경써야 할 부분이다. API가 한 두개가 아니고, 계속 변하니까 더욱 문서화는 중요하다. 3주에는 포스트(post) 기능을 위해 필요한 API를 구현하며 문서화 부분까지 챙겨보자. 나 혼자 읽을 소장용 문서가 아니라, 다른 개발자가 읽을거라고 가정하고!


4주차 - 비즈니스 로직 처리(2)

  • 예외처리 가이드
  • AWS S3 연동
  • CompletableFuture 비동기 처리
  • 비즈니스 로직 개발(포스팅 댓글 관련 기능 구현)

코멘트 추가, 코멘트 목록 조회 기능을 구현하며 REST API를 구현한다. 2주차 미션과 이어지는 부분으로, 모든 REST API와 관련 모델에 대해서는 Swagger를 통해 문서화를 반드시 해야 함.


5주차 - 마이크로서비스(Microservice)

  • 도메인 이벤트
  • 이벤트 시스템
  • Apache Kafka
  • 댓글 알림 기능 구현

도메인 이벤트를 정의해보고 이벤트 시스템을 이용해서 해당 도메인 이벤트를 처리해 봅니다. 그리고 마이크로 서비스 환경에서 이벤트 기반으로 서비스가 반응적으로 동작하게 구성해봅니다. 이때 분산 메시징 시스템인 Apache Kafka를 다룹니다. 마지막 주차 미션은 조금 무거우니, 끝까지 집중!

prgrms-web-backend-study's People

Contributors

juhyun419 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.