개발 필독! API, JSON, DevOps, 애자일로 완성하는 핵심 기술 스택!
게시일:
작성자: 자청의 유튜브 추출기
개발자가 알아야 할 필수 지식들
개발자가 되려면 알아야 할 게 정말 많아! 그중에서도 꼭 알아야 할 몇 가지를 쉽게 설명해 줄게.
1. 자료 구조: 데이터를 담는 그릇
- 자료 구조는 프로그램을 만들 때 데이터를 담는 기본적인 방법이야.
- 예를 들면 배열처럼 순서대로 데이터를 담거나, 링크드 리스트처럼 데이터끼리 연결해서 담는 방식 등이 있어.
- 이런 자료 구조를 잘 알면 데이터를 더 효율적으로 관리하고 사용할 수 있어.
- 정렬하는 방법도 자료 구조에서 배우는 중요한 내용 중 하나야.
2. API: 서로 대화하는 방법
- API는 프로그램끼리 서로 정보를 주고받을 수 있게 약속된 규칙이야.
- 우리가 쓰는 앱이나 웹사이트는 대부분 서버에 있는 데이터를 보여주거나 관리하잖아? 이때 서버와 앱이 대화하는 수단이 바로 API야.
- 오픈 API는 다른 사람들도 쓸 수 있게 공개된 API를 말해.
- API를 사용할 때는 보안도 중요하고, 사용한 만큼 돈을 내야 하는 경우도 있어 (이걸 미터링이라고 해).
- REST API는 API를 만들 때 지켜야 할 몇 가지 규칙을 정해놓은 거야. 데이터를 가져오거나(GET), 만들거나(POST), 수정하거나(PUT, PATCH), 삭제하는(DELETE) 등의 규칙이 있어.
3. 함수와 클래스: 프로그램을 만드는 기본 재료
- 함수는 특정 기능을 수행하는 코드 덩어리야. 수학에서 'f(x)'처럼 어떤 값을 넣으면 결과가 나오는 것처럼 말이지.
- 클래스는 함수와 변수들을 의미 있게 묶어놓은 거야. 마치 설계도처럼, 이걸 가지고 실제 객체를 만들어낼 수 있어.
- 이런 클래스들을 모아놓은 게 라이브러리고, 라이브러리를 더 편하게 쓸 수 있게 만든 게 SDK야.
- 모듈이나 컴포넌트도 비슷한 개념으로, 코드들을 의미 있는 단위로 묶어놓은 거야.
4. 동기 vs 비동기: 기다림의 차이
- 동기는 어떤 작업을 요청하고, 그 작업이 끝날 때까지 기다리는 방식이야.
- 비동기는 작업을 요청하고 기다리지 않고 바로 다음 작업을 하는 방식이야. 응답이 오면 그때 처리하는 거지.
- 콜백 함수는 비동기 방식에서 응답이 왔을 때 실행될 함수를 미리 정해두는 거야.
- Ajax는 웹사이트에서 서버와 데이터를 주고받을 때 비동기 방식을 사용하는 대표적인 기술이야. 웹사이트 전체를 새로고침하지 않고 일부만 업데이트할 수 있게 해줘.
5. 데이터 형식: 정보를 담는 모양
- XML과 JSON은 데이터를 담는 형식이야. 프로그램이라기보다는 데이터를 저장하고 주고받을 때 사용하는 '그릇'이라고 생각하면 돼.
- JSON이 XML보다 더 간결하고 효율적이어서 요즘 더 많이 사용돼.
6. 폴링 vs 이벤트: 확인 vs 알림
- 폴링은 계속해서 상대방에게 "했니? 했니?" 하고 물어보며 확인하는 방식이야. (예: 5분마다 서버 상태 확인)
- 이벤트는 상대방이 일을 다 끝내면 "다 됐어!" 하고 알려주는 방식이야. (예: 서버에서 작업 완료 알림)
7. 소프트웨어 공학: 함께 잘 만드는 방법
- 혼자 개발하는 게 아니라 여러 사람이 함께 개발할 때는 소프트웨어 공학이 중요해.
- 개발 방법론에는 여러 가지가 있어.
- 폭포수 모델은 기획, 설계, 개발, 테스트 순서대로 단계를 거쳐 개발하는 방식이야. SI(시스템 통합) 프로젝트에서 많이 사용돼.
- 애자일은 짧은 주기로 반복하며 개발하고, 사용자 요구사항 변화에 유연하게 대처하는 방식이야. 서비스를 만드는 회사에서 많이 사용돼.
- 데브옵스(DevOps)는 개발(Development)과 운영(Operations)을 합쳐서, 개발부터 운영까지 전 과정을 효율적으로 관리하는 거야.
- CI/CD는 개발한 코드를 자동으로 빌드하고 테스트해서 배포하는 과정을 자동화하는 기술이야.
8. 소프트웨어 아키텍처: 건물의 설계도
- 아키텍처는 프로그램을 어떻게 만들지 큰 그림을 그리는 거야. 마치 건물을 짓기 전에 설계도를 그리는 것처럼 말이지.
- MSA(마이크로서비스 아키텍처)는 큰 시스템을 여러 개의 작은 서비스로 나누어 개발하는 방식인데, 모든 경우에 좋은 것은 아니야.
- 아키텍처를 잘 설계해야 시스템이 안정적으로 돌아가고 효율적으로 운영될 수 있어.
이 외에도 더 많은 내용이 있지만, 일단 이 정도만 알아도 개발을 이해하는 데 큰 도움이 될 거야!