[KB국민은행X광진구청] 8년차 스타트업 현직 개발자와 함께하는 백엔드 실무 체험_1주차 강의_1

김승환·2021년 11월 9일
1

대외활동

목록 보기
1/3

(11월 7일부터 진행하는 코멘토의 직무부트캠프에서 수강한 강의 내용 정리입니다.)

0) 개발자란 무엇인가?

  • 개발자는 코딩하는 사람이 아닌 본인에게 주어진 비즈니스 문제를 해결하는 사람 이라 생각하고 접근을 해보자. 풀고자 하는 문제를 정확히 이해하는 것이 노력의 80%가 들어가야 한다.(엘레베이터의 문제가 예시)
  • 스스로가 어떤 비즈니스 밸류를 만들어 낼 수 있을지 고민하고 실천해본다면 그 과정에서 성장이라는 것을 할 수 있고 내 가치를 높일 수 있다.

1) 백엔드 개발자 (서버 개발자)

- 사용자에게 노출되지 않음
- PHP, Java, Node.js, Python 등의 컴파일, 스크립팅 언어를 사용
- 데이터를 관리함
- 확장성 및 고가용성 고려
- 소프트웨어 아키텍처 고려
- 보안 및 인증

2) 알아야 하는 기술 스택

  • Internet : HTTP, 웹 동작 방식, 네트워크 지식 (DNS 등)
  • Frontend(Basic) : HTML, CSS, Javascript
  • OS 지식 : 터미널 사용법, Thread, 동시성, 메모리, I/O 관리
  • 언어 : Java, C#, PHP, Rust, Go, Python, Ruby, JavaScript(Node.js)
  • 업무 협업 : git
  • DB : RDB, NoSQL, ORM
  • API에 대한 이해 (REST)
  • 배포 및 테스트
  • 개발 디자인 : OOP(SOLID), DDD, TDD
  • 시스템 아키텍처 : Monolithic, Microservices, SQRS
  • 인프라 : Cloud(AWS, GCP), Docker

3) 실제로 무슨 일을 하는가?

업무를 기능조직(PO, Frontend, Backend, DevOps...)과 목적조직(회원관리, 결제관리...) 으로 나눠서 팀 간에 업무 방향성을 정하고 각 팀 끼리 커뮤니케이션해서 일을 진행한다.

4) 백엔드 개발 WorkFlow

  • API 스펙정의 / 리뷰
API : 클라이언트에서 호출하는 서버의 기능

기술 명세서에 Request, Response로 나눠 parameter 와 key 를 정의 하는 것.
요청/응답 샘플(실제 어떻게 요청해야하고 어떻게 응답이 오는지에 대한 샘플)을 뽑아서 프론트엔드 부서와 주고받음
  • 프로그램 설계 및 리뷰
문서작업 위주, 프로젝트를 기능단위로 쪼개서 구현계획을 짜는 것. 
설계에는 레거시 코드를 분석하기 전에 구현해야하는 기능들을 정리하고 기존 코드를 그에 맞게 리팩토링하는 작업도 포함.

Ex) 주문 취소정보 생성 및 환불처리
-> 주문 취소를 위한 원본, 취소정보 저장
	-> 취소 AS 접수
    	-> 주문 변경 히스토리 저장
    	-> 환불 정보 등록
-> 상품 주문 취소, 마일리지, 쿠폰 원복
	-> .....
-> 결제 취소 및 로그 저장
	-> .....
-> 트랜잭션 외 처리
	-> .....
  • 일정산정
업무를 명확히 나누고 병렬적으로 처리가 되어야 함. 
업무를 세부적으로 명확하게 나눌수록 일정산정이 편해지고 업무처리도 빨라짐
  • 개발 작업
실제 코딩에 들어가는 부분
  • QA
개발된 기능들을 테스트
profile
사람의 마음을 사는 개발자가 꿈입니다. The Unexpected do The Unexpected.

1개의 댓글

comment-user-thumbnail
2022년 2월 25일

은행이 요즘 IT분야 강화하더라 오프라인 지점은 줄이고 그만큼 온라인쪽 키우는 듯

답글 달기