1. 소프트웨어 개발주기
- 요구사항 분석: 요구사항 수집, 명확한 기능 명세서 작성
- 설계: 소프트웨어 아키텍처와 데이터베이스 스키마 설계, 주요 인터페이스 및 알고리즘 정의
- 구현: 코드 작성, 소프트웨어 컴포넌트 개발
- 테스트: 버그 찾고 수정, 소프트웨어 요구사항 충족 확인
- 배포: 사용자 환경에 배포
- 업데이트: 지속적으로 업데이트 및 개선
2. 시스템 아키텍쳐
- Monolithic Architecture: 프론트엔드(UI) > 백엔드 레이어(비즈니스 로직) > 데이터 레이어 <--> DB Layer
- Microservice Architecture(MSA): API 게이트웨이 > 마이크로 서비스(사용자 관리, 주문, 결제 ...) > DB
- MSA는 DB를 독립적으로 갖기 때문에 데이터 구조 변경에 의한 시스템간의 변경도 쉬우나, 시스템이 복잡해지거나 네트워크 지연이 일어나기도 함
- API: 어플리케이션 간에 상호작용을 할 수 있도록 만들어진 규격, 프론트엔드에서 요청한 결과를 백엔드에서 처리하고 그 결를 다시 프론트엔드에 전달하는 역할
3. 프로그래밍 기초
데이터 타입
- INT / BIGINT: 정수값
- String: 문자열
- DATE: 날짜
- BOOLEAN: True / False
- TIMESTAMP: 날짜, 시간
- 조건문: SQL - SELECT * FROM --- WHERE --- > ----; / if, else, switch
- 논리연산자: AND, OR, not
- 비교연산자: 같다, 크다, 작다, 같지않다 / Like, %like%
- 변수: $nickname
- html/css
데이터 구조
- 배열: 데이터의 크기가 정해져 있고, 인덱스를 통해 빠르게 접근
- 리스트: 데이터의 크기가 동적으로 변하고, 추가/삭제가 자유로움
- 스택: 후입선출(나중에 적재된 데이터부터 먼저 꺼내는 것)
- 큐: 선입선출(먼저 적재된 데이터를 먼저 꺼내는 것)
- 오류코드
404 Not Found: 요청된 리소스를 찾을 수 없음
500 Internal Server Error: 서버에서 예기치 않은 오류 발생
502 Bad Gateway: 서버가 잘못된 응답을 받음
4. 배포
- 앱: 특정 운영 체제(OS)에 종속, 각 앱스토어의 심사를 거쳐 배포됨, 업데이트를 통해 버전관리
- 웹: 실시간 업데이트 가능, 네이티브 앱에서도 웹뷰를 사용하기도 함, 다양한 브라우저의 호환성을 고려하여 테스트가 이루어져야 함
- 서버: 중요한 서비스 업데이트의 경우, 서비스 중단 후 새벽시간에 진행되는 경우가 많음
- 베타: 제한된 사용자에게만 공개됨
- 스테이징: 운영환경의 DB를 연결하여 실제 운영환경과 유사한 테스트
- 운영(or 라이브): 안정성, 신뢰성이 최우선
- 깃(Git): 소스 코드의 버전을 관리하는 툴, 여러 개발자가 동시에 관리 작업
- 브랜치(Branch): 독립적으로 작업 진행을 가능하게 함
- 커밋(Commit): 파일의 변경 사항을 저장소에 기록하는 과정, 특정 시점으로 돌아갈 수 있음
- 머지(merge): 다른 브랜치의 변경사항을 현재 브랜치에 통합하는 작업, 개별적으로 작업한 내용 하나로 합치는데 사용
- 배포/롤백: 코드를 사용자가 이용하는 운영 환경에 적용/문제가 생겼을 때 이전 버전으로 시스템을 되돌리는 작업
'Log_Service Design School' 카테고리의 다른 글
서비스 기획 - 인터뷰 (0) | 2024.09.21 |
---|---|
서비스 기획 스터디 - Growth Hacking 사례 (1) | 2024.09.20 |
서비스 기획 기초 역량 - PM (1) | 2024.09.20 |
서비스 기획 기초 역량 - BIZ / Marketing (8) | 2024.09.20 |
서비스 기획 기초 역량 - UX (1) | 2024.09.20 |