조금 시간이 지났지만, 정리하기 위해 이번에 다녀온 컨퍼런스 내용 중 일부를 정리한 글입니다.
카카오톡 오픈채널방에서 너디너리라는 IT 행사가 있다는 소식을 들어, 회사에 이야기를 하고 9월 8일에 다녀왔습니다. 다양한 IT연합 동아리에서 어떤 작업물이 나왔는지, 그리고 컨퍼런스 세션의 내용들이 궁금 신청하고 다녀왔습니다.
동아리 및 기업 부스
IT연합 동아리 및 스타트업에서 문제점들을 각자의 방법에 따라 해결해보는 서비스와 시도들을 볼 수 있었습니다.
- 보일다운
현재 회사에서도 git, slack, flow, gmail등 다양한 커뮤니케이션 툴을 활용하는데, 커뮤니케이션 툴이 많은 만큼 놓치는 경우가 있습니다. 보일다운이라는 서비스는 이러한 툴을 한 곳에서 모아서 보여주기 때문에, 업무 중에 알림을 놓치는 실수를 줄여줄 수 있을 꺼 같아, 써보고 싶다고 생각이 들었습니다.
- 슈퍼패스
신입 채용 서비스였는데, 간단한 퀴즈를 통해 어떤 서비스인지 그리고 개발자들이 쉽게 서비스에 유입될 수 있는 점이 좋다고 생각이 들었습니다.
- 클러치
전세사기방지 솔루션 서비스였습니다.
제가 법을 잘 모르지만 보증금을 즉시 지급해주고 대신 처리를 해주는 방식으로 수익모델을 설정했다는 점이 흥미로웠습니다.
컨퍼런스 세션
총 6개의 세션을 들었지만 들었던 이 글에서는 들었던 첫 번째 세션의 내용을 정리하려고 합니다.
키워드로 알아보는 백엔드 로드맵
- 개발자가 되었다는 것은 어떻게 증명할까? 아래 질문 목록 중 어떠한 점이 어떠한 점이 개발자라는 것을 증명할 수 있는 것인가?
- CS 지식에 해박하고 알고리즘을 잘 안다.
- PM 혹은 기획자 등의 다른 직군의 팀원들과 개발적 지식을 바탕으로 회의 진행할 수 있다.
- 이론적 지식이 풍부하고 취득하기 어려운 IT 관련 자격증
- 개발중인 프로그램의 산업군(이커머스, 금융)에 대한 도메인 지식이 있다.
- 꾸준히 공부하며 오픈소스에 기여하거나 개발 블로그 작성
- 본인이 알고 있는 짓기을 남에게 알려주는 세미나, 발표 등의 활동
- 다양한 언어 및 프레임워크를 학습
- 여러 최신 IT뉴스를 받고 학습한다.
- 업무 외 본인 프로그램을 개발 운영
- 프로그래밍 언어 혹은 프레임워크, 라이브러리를 사용하며 트러블 슈팅을 할 수 있다.
- 저 중 상대적으로 개발자가 되었다는 것을 증명할 수 있는 것
- 프로그래밍 언어 혹은 프레임워크, 라이브러리를 사용하며 트러블 슈팅을 할 수 있다.(주니어)
- 주니어는 프로그램 제작을 위한 기초 실력이 필요
- PM 혹은 기획자 등의 다른 직군의 팀원들과 개발적 지식을 바탕으로 회의 진행할 수 있다. (주니어 → 미들급)
- 미들급은 코딩실력과 동시에 프로그램 제작을 위한 협업 능력
- 개발중인 프로그램의 산업군(이커머스, 금융)에 대한 도메인 지식이 있다. (주니어 → 미들급 → 시니어)
기초 실력의 기준을 잡을 수 위한 백엔드 로드맵
키워드 별 해봤으면 하는 경험도 있지만 여기서는 키워드만 정리하겠습니다.
기초 실력의 기준을 잡기 위한 키워드들입니다.
CS 기초 지식
- 네트워크
- Port Forwarding
- IP 주소
- 외부/내부 IP
- Port
- DNS
- HTTP/HTTPS
- HTTP METHOD
- HTTP Status Code
- 운영체제
- Windows
- Linux
- FHS
- 환경변수
- Terminal
- Shell
- Job scheduler
- 데이터베이스
- 데이터 조회/저장 방식
- RDBMS
- TABLE
- Relation
- 정규화
- Transaction
- 백업과 복원
- csv
- ACID
- DDL
- DML
- DCL
- 자료구조
- BigO
- Array
- List
- Map
- Stack
- Queue
- Graph
- Tree
백엔드 개발 언어와 프레임워크 & DBMS
- Java, spring
- 정적/동적 언어
- 프레임워크
- 라이브러리
- OOP
- Spring Boot
- 패키지매니저
- Raw Query
- 템플릿엔진
- 페이지네이션
- 동적쿼리
- ORM
- Transaction
- API
- 인터페이스
- REST
- API Document
- JSON
- XML
- YML/YAML
버전 관리 시스템
- 형상관리
- 브랜치전략
- Local/Remote Repository
- Commit
- Branch
- Pull Request
- Issue Tracker
클라우드 컴퓨팅 & 컨테이너와 오케스트레이션
- On-Premise
- Cloud
- IaaS
- PaaS
- SaaS
- 가상머신
- 컨테이너
- Docker
- Docker Compose
- 컨테이너 이미지 저장소
애플리케이션 아키텍처
- Monolithic
- MSA
- Serverless
테스트와 CI/CD
- Unit Testing
- Integration Test
- TDD
- BDD
- CI/CD Tools