연계LV_2

네카라쿠배 개발자와 함께 Spring으로 인스타그램 서버 만들기

  • 클론코딩
  • Spring

Spring으로 인스타그램 서버 만들기

thumbnail
네카라쿠배 기업 재직중인 4년차 백엔드 개발자
  • 3:1 피드백
  • 넘블 인증서
23.03.24 ~ 23.04.133주
23.03.23 까지
     

    당신의 시간은 넘블이 아껴드립니다! 30초 요약해볼게요!

    📢
    하나. 항상 해오던 단순 인스타그램 클론코딩이 아닌, 고급 개발자가 되기위해 고민해봐야하는 성장 포인트를 짚어주기에 더욱 의미있는 클론코딩이 될거에요.
    둘. “그냥 클린코드 만들어봐요”가 아닌 실제 호스트가 재직중인 기업(네카라쿠배 중 1곳)에서 사용하는 8가지 클린코드 규칙을 제공할거에요. 이에 맞게 클린코드를 작성해보는 연습을 해봐요.
    셋. 동일한 프로젝트를 진행하고 있는 다른 참가자들과 소통과 공유를 통해 더 많은 성장을 이뤄낼 수 있습니다.
    넷. 네카라쿠배 기업 재직중인 4년차 현직자가 TOP3에게 세부 코드 리뷰(서면+온라인 모두 제공)를 제공하고 상위권 결과물 및 세부 코드 리뷰는 참가자 모두에게 공유됩니다. (온라인미팅은 3:1로 1시간 진행)
    개발할 내용 프로세스 예시
    notion image
    notion image
     

    챌린지 호스트

    📌
    이번 챌린지 호스트는 준준입니다.
    • 네카라쿠배 4년차 백엔드 엔지니어
    • 해외 빅테크 최종 합격 경험
    • 코드스테이츠 멘토링 경험
     

    챌린지를 완수할 경우 이력서에 들어갈 내용

    📌
    챌린지를 완수하면 이력서에 다음과 같은 내용을 추가할 수 있어요
    • 8가지 규칙에 맞는 클린 코드 작성 경험
    • 프로덕트 개발 경험
    • 서비스 배포 경험
    • 스토리지 이용 경험
    • CI/CD 파이프라인 적용 경험
    • JPA 사용 경험
    • JWT 사용 경험
     

    챌린지를 통한 성장 포인트

    📌
    챌린지를 수행하며 다음의 부분에서 성장할 수 있어요
    • 가독성 있는 클린 코드를 작성할 수 있다.
    • 요구사항을 파악하여 프로덕트 서버를 개발할 수 있다.
    • AWS 등 클라우드를 이용하여 자신의 서버를 배포할 수 있다.
    • 프로덕트 개발 경험을 통해 자신만의 서비스를 만들 수 있다.
    • CI/CD 파이프라인을 통해 자동 배포를 적용할 수 있다.
    • JWT와 Spring Security를 적용하여 보안을 강화할 수 있다.
    • JPA를 이용하여 데이터베이스를 이용할 수 있다.
    • 커서 방식의 페이지네이션을 적용할 수 있다.

    가이드라인 통해 제공할 내용

    📌
    가이드라인에는 다음과 같은 내용이 담겨요
    • 클린코드 8개 규칙
    • Spring Security 의 whitelist 에 등록되어야 할 API 목록
    • 페이지네이션 시 커서 방식을 적용하는 이유에 대한 설명
    • 개발을 위한 시안
    • 더 구체적인 구현 조건
    클린코드 규칙 예시
    총 8가지 규칙을 가이드라인 통해 제공예정이에요. 그 중에 3가지는 다음과 같아요.
    1. 객체 생성에도 유의미한 이름을 사용하라
    // 두 번째 인자가 무엇인지 파악이 어렵다.
    Product product = new Product("사과", 10000);
    // 이름을 부여하여 두 번째 인자를 명확하게 파악할 수 있다.
    Product product = Product.withPrice("사과", 10000);
    1. 비즈니스 로직을 담는 변수명을 사용하라
    회원 가입시
    User user = User(“userId”) // X
    User newUser = User(“userId”) // O
    1. 메소드는 하나의 역할만 해야한다.
     

    구체적인 챌린지 내용

    📌
    다음의 구현조건을 더 구체화해 제공할 예정이에요
    네카라쿠배 백엔드 개발자가 알려주는 고급 개발자가 되기 위한 첫걸음 궁금하시다면~?
    구현범위
    [피드목록 조회]
    notion image
     
    [글 등록&수정&삭제]
    notion image
     
    [DM 전송][DM 상세 내역 조회]
    notion image
     
    [DM 목록 조회]
    notion image
     
    [팔로우&팔로우 취소][프로필 조회&수정]
    notion image
    구현범위
    • 다음과 같은 인스타그램 서비스의 시안이 제공되며, 해당 시안을 개발하셔야 합니다.
    • 인스타그램에서 제공되는 대략적인 서비스의 기능을 구현하게 됩니다.
    구현 기능
    • 글 생성, 수정, 삭제 (이미지 포함)
    • 댓글 생성, 수정, 삭제
    • 답글 생성, 수정, 삭제
    • 피드 조회
    • 회원 가입, 탈퇴
    • 프로필 조회, 수정
    • 팔로우, 취소
    • DM (목록, 내역, 전송)
    • JWT와 Spring Security를 적용한 보안 및 인증
    • AWS Elastic Beanstalk를 이용한 배포
    • Github Action을 이용한 배포 자동화 (CI/CD 파이프라인 구축)
    구현조건
    • 글 생성 시 이미지의 개수는 한 장으로 제한
    • 이미지는 S3에 업로드 후 url을 DB에 저장
    • 가이드라인에서 제공되는 클린코드 규칙 준수
    • 유저 정보가 필요한 API 작성 시 parameter로 유저의 정보를 제공하면 안됨. JWT 토큰을 parsing 하여 유저 정보 획득
    • 비회원에게 노출되면 안 될 API를 spring security를 통해 보안 적용
    • Spring JPA 를 이용하여 DB 작업
    • REST API 적용
    • 페이지네이션은 커서 방식으로 적용
    • 회원 탈퇴 시 soft delete를 적용. 유저 데이터를 날리지 않도록 함
    • Github Action을 사용하여 배포 자동화
    • 답글의 max depth는 1로 적용
     
     

    챌린지 대상

    notion image
     

    일정

    📌
    3월 24일-4월 13일(3주)
    자세한 일정이 궁금하면 토글 버튼을 눌러주세요!
    3월 24일(금) 오전 10시 : 챌린지 안내문자 전달
    • 디스코드 가입 링크, 챌린지 가이드라인, OT 링크 등 전달
    오후 7시 : 챌린지 OT
    4월 13일(목) 오후 11시 59분 : 챌린지 결과물 제출 마감
    4월 26일(수) 오후 7시 : 결과 발표
    5월 1일(월) 오전 10시-11시 : 상위 3명 3:1 온라인 피드백 오전 11시-오후 9시 : 피드백권 구매자 1:1 온라인 피드백(1시간)
    온라인 피드백 일시는 넘블측에서 조율할 수 있습니다.
     
     
     

    평가방식

    📌
    챌린지 호스트가 심사기준에 맞게 상위 3명을 선별해요
    심사기준은 다음과 같아요.
    notion image

    운영방법

    📌
    참여자들끼리 함께 하기에 특별한 넘블 챌린지
    자세한 내용이 궁금하면 토글 버튼을 눌러주세요!
    참여자분들은 모두 디스코드에 초대돼요.
    1) 원하는 넘블러님들에 한해 팀빌딩을 제공해드려요. 팀원들은 함께 스터디하고 서로의 결과물에 대해 피드백을 주는 동료에요. 단, 함께 결과물을 만드는 것은 아닙니다. 2) 참여자들끼리 주별 목표와 목표달성여부, daily scrum을 올리기에 서로를 보며 자극받고 동기부여돼요. 3) 참여자들끼리 같은 미션을 해결하기에 서로 질의응답하며 성장해요. * 물론 챌린지 호스트님도 성실히 질문에 답변해주실 거에요 4) 참여자들의 결과물은 참여자들끼리 모두 공유해요. 이 때 TOP 3는 피드백과 함께 공유되기에 많은 인사이트를 얻을 수 있어요.
     
     

    넘블 X 네이버 클라우드 파격 혜택

    📌
    넘블 챌린지에 참여하는 넘블러님들께는 최대 100만원의 네이버 크레딧을 지급해요!
    자세한 내용은 다음과 같아요
    네이버 클라우드 신규 가입(10만원)+넘블 챌린지에 참여하는 모든 넘블러(20만원)+챌린지 회고록을 작성하는 넘블러(70만원)
    챌린지에 참여하시는 넘블러님이실 경우 바로 20만원 크레딧을 드리며, 회고록을 작성할 넘블러님들께는 70만원의 크레딧을 추가로 드려요. 단, 20만원 크레딧을 받으실 경우 챌린지 종료 후 약 2~3분 정도 소요되는 설문조사를 작성해주셔야해요!
    회고록은 많이 작성해야되나요? 부담스러운거 아닌가요?
    아니요! 자신의 프로젝트를 돌아보며 회고하며 성장하는 것을 목표로 간단히 작성해주시면 됩니다! 정해진 양식은 없지만 프로젝트 미션, 어려웠던 부분, 해결방법, 아쉬웠던 부분, 사용한 기술스택, 사용해보며 느낀 기술스택의 장단점 등을 간단하게 velog나 블로그, 혹은 노션 등에 작성해주시길 권장드려요!
    이 때 네이버 클라우드에 대해 피드백(ex. 장단점)을 간단하게만 추가해주시면 돼요😊
    회고록을 대충 작성했다고 크레딧을 회수하지 않으니 걱정하지 마세요😉
     

    보상

    📌
    상위 3명에게 호스트의 피드백 서면 피드백+온라인 3:1 피드백 제공
    자세한 내용이 궁금하면 토글 버튼을 눌러주세요!
    일시: 5월 1일 오전 10시-오전 11시 (넘블측에서 조율 가능)
    방법: 호스트와 상위 3명이 온라인상에서 각자의 결과물을 보며 피드백 미팅 진행
     
     

    신청 방법

    📌
    아래 설문지를 통해 참가신청을 해주세요!
     
     

    💰 환불 기준

    📌
    챌린지 오픈 전날까지는 결제하신 금액 100% 환불 가능합니다. 하지만 챌린지 오픈당일부터는 환불 불가합니다.
    1. ~ 챌린지 시작 전날 자정(23:59) 전까지
      1. 환불 100% 가능
    1. 챌린지 시작날 이후
      1. 환불 불가

    ❓FAQ

    • 구글 설문지 제출하고 결제했는데 신청완료된 건가요?
    🔹
    네! 두 가지 모두 완료하셨다면 신청완료입니다! 저희는 참가에 대한 선별을 거치지 않아요!
    • 챌린지가 이미 오픈해버렸습니다! 중간에 참여해도 괜찮나요?
    🔹
    네! 괜찮습니다! 다만, 결과물 제출 일자는 변동이 없으니 이 부분 감안해주세요!
    • 챌린지 결과물을 빨리 만들었어요! 미리 제출해도 되나요?
    🔹
    물론입니다! 챌린지 종료 전까지만 결과물 제출해주시면 돼요! 단, 먼저 제출하셔도 가산점은 없습니다!
    • 팀빌딩 기준은 어떻게 되나요?
    🔹
    팀빌딩은 작성해주신 설문지의 내용을 바탕으로 이루어집니다! 넘블 인재풀, 연차, 팀장 선호 여부 등 여러 요건들을 고려하여 팀빌딩을 제공해드립니다. 팀빌딩을 희망하시는 분들은 활발한 참여를 부탁드립니다!

    딥다이브 일정을 안내해드릴게요

    📌
    3월 24일-4월 13일(3주)
    3월 24일(금) 오전 10시 : 챌린지 안내문자 전달
    • 디스코드 가입 링크, 챌린지 가이드라인, OT 링크 등 전달
    오후 7시 : 챌린지 OT
    4월 13일(목) 오후 11시 59분 : 챌린지 결과물 제출 마감
    4월 26일(수) 오후 7시 : 결과 발표
    5월 1일(월) 오전 10시-11시 : 상위 3명 3:1 온라인 피드백 오전 11시-오후 9시 : 피드백권 구매자 1:1 온라인 피드백(1시간)
     
    온라인 피드백 일시는 넘블측에서 조율할 수 있습니다.
     
     

    🔶보상 1.

    상위 3명에 선정되신 분들께는 호스트의 피드백(온라인 피드백 및 서면 피드백 )을 제공해드려요! 본인의 결과물을 바탕으로 호스트에게 직접 피드백을 받을 수 있어요! 상위에 든 다른 참가자의 결과물도 함께 보며 내 것과 비교/분석하며 인사이트를 얻어가세요!
     
     

    🔶보상 2.

    상위 3명에 선정되신 분들, 딥다이브 결과물을 제출해주신 분들께는 이력서에 바로 어필할 수 있게끔 넘블에서 이번 딥다이브를 통해 성장한 역량을 어필할 수 있게 자동 완성해드려요! (딥다이브 참가내역에서 확인 가능합니다!)
     
    notion image

    🔶보상 3.

    상위 3명에 선정되신 분들, 딥다이브 결과물을 제출해주신 분들께는 넘블 수료증이 발급돼요! 이미 많은 분들이 넘블의 결과물을 이력서와 포트폴리오에 활용하시고 있어요! 넘블이 인증한 실력자라는 타이틀을 얻어가세요! (인증서는 신청하신 분들에 한해서 제공됩니다! 신청방법은 ‘FAQ’에서 확인해주세요!)
    notion image
     

상담 운영 시간 : 평일 10:00 ~ 18:00

점심시간 : 평일 13:00 ~ 14:00

주말, 공휴일 휴무

대표자 박유진

상호명 주식회사 피스오브무드

사업자등록번호 735-86-01467

통신판매업번호 2019-서울마포-2170

주소 서울특별시 마포구 아현동 백범로31길 21 4층

Copyright Pieceofmood. All rights reserved