본문 바로가기

Log_Service Design School

서비스 기획 기초 역량 - TECH

728x90

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): 다른 브랜치의 변경사항을 현재 브랜치에 통합하는 작업, 개별적으로 작업한 내용 하나로 합치는데 사용

- 배포/롤백: 코드를 사용자가 이용하는 운영 환경에 적용/문제가 생겼을 때 이전 버전으로 시스템을 되돌리는 작업