제품의 성공은 개발팀과의 긴밀한 협업에 달려 있습니다. 비개발자 PM이라도 기본적인 개발 지식이 뒷받침된다면 더 명확한 소통과 합리적인 의사결정이 가능한데요! 이번 글은 제가 명확히 정리하고 기억하고자 작성해 보았습니다 ㅎㅎ
1. 웹 서비스의 기본 구조 이해하기
1.1 클라이언트-서버 모델
웹 서비스는 크게 클라이언트와 서버로 나뉘어 동작합니다.
- 클라이언트: 사용자가 보는 화면(웹/앱)에서 요청을 보내는 주체입니다.
- 서버: 클라이언트의 요청을 처리하고 결과(데이터)를 반환합니다.
요청과 응답 흐름 (HTTPS 프로토콜)
웹 서비스는 HTTPS(HyperText Transfer Protocol)를 통해 데이터를 주고받습니다.
- GET 요청: 데이터를 조회할 때 사용 (예: 웹사이트 열기)
- POST 요청: 새로운 데이터를 서버에 저장할 때 사용 (예: 회원가입)
- PUT/PATCH 요청: 기존 데이터를 수정할 때 사용
- DELETE 요청: 데이터를 삭제할 때 사용
1.2 프론트엔드 & 백엔드
프론트엔드와 백엔드는 웹/앱 서비스의 양대 축입니다.
프론트엔드
사용자 경험을 책임지는 영역입니다. 주요 기술 스택은 다음과 같습니다:
- HTML: 웹 페이지의 구조를 만드는 마크업 언어
- CSS: 웹 페이지의 스타일과 디자인을 담당
- JavaScript: 화면에서 동적인 기능을 구현 (버튼 클릭, 애니메이션 등)
추가로 많이 사용되는 프레임워크:
- React: 페이스북에서 만든 UI 프레임워크
- Vue.js: 빠르고 가볍게 UI를 개발할 수 있는 프레임워크
- Angular: 구글에서 개발한 대규모 애플리케이션용 프레임워크
백엔드
서버에서 데이터를 처리하고 로직을 실행하는 영역입니다. 주요 기술 스택은 다음과 같습니다:
- 언어: Python, Java, Node.js, 등
- 데이터베이스: MySQL, PostgreSQL (관계형 DB), MongoDB (NoSQL)
- 프레임워크: Django, Spring, Express.js
2. 데이터베이스 이해하기
데이터베이스는 제품의 모든 데이터를 저장하고 관리하는 핵심입니다.
2.1 데이터베이스의 종류
- 관계형 데이터베이스(RDBMS): 데이터를 테이블 형식으로 저장하며, SQL(Structured Query Language)을 사용합니다.
- 예시: MySQL, PostgreSQL, Oracle
- 비관계형 데이터베이스(NoSQL): JSON이나 Key-Value 형태로 데이터를 저장하며, 대규모 데이터를 빠르게 처리하는 데 유리합니다.
- 예시: MongoDB, Redis
2.2 SQL 기초 개념
SQL은 관계형 데이터베이스를 다루는 쿼리 언어입니다.
- SELECT: 데이터 조회
- INSERT: 새로운 데이터 추가
- UPDATE: 데이터 수정
- DELETE: 데이터 삭제
3. API와 데이터 통신
3.1 RESTful API
프론트엔드와 백엔드가 데이터를 주고받는 대표적인 방식이 RESTful API입니다.
- 엔드포인트: API의 URL 주소
- HTTP 메서드: GET, POST, PUT, DELETE 등
- JSON: 데이터를 주고받을 때 사용하는 포맷
HTTP 메서드 예시
- GET /users → 모든 사용자 목록 가져오기
- POST /users → 새 사용자 생성
- PUT /users/1 → ID가 1인 사용자 정보 수정
- DELETE /users/1 → ID가 1인 사용자 삭제
3.2 GraphQL
GraphQL은 REST의 단점을 보완한 데이터 쿼리 언어입니다. 필요한 데이터만 요청할 수 있어 효율적입니다.
4. 버전 관리 시스템(Git)
Git은 소스코드를 관리하고 협업하는 도구입니다. 개발팀에서는 주로 GitHub나 GitLab을 사용합니다.
기본 개념
- Commit: 코드 변경 사항을 저장
- Branch: 기능별 작업 공간 생성
- Merge: 작업을 메인 브랜치에 병합
- Pull Request: 병합 전 코드 리뷰 요청
5. CI/CD 파이프라인
5.1 CI/CD란?
- CI(Continuous Integration): 코드 변경 사항을 자동으로 빌드/테스트
- CD(Continuous Deployment/Delivery): 빌드/테스트가 문제없이 작동하면 자동으로 배포
마무리
기술적 지식이 부족하면 개발팀과의 커뮤니케이션에서 오해가 발생하거나 일정에 차질이 생길 수 있습니다. 하지만 PM은 기술 지식을 활용해 비즈니스 목표를 기술과 연결하는 역할을 해야 합니다. 비전공자도 공부하면 정말 즐거운 IT 세계를 경험 할 수 있습니다. PM 화이팅!
'개발' 카테고리의 다른 글
| 비전공자 PM 이 정리한 간단한 백엔드 vs 프론트엔드 정리 (0) | 2024.12.17 |
|---|