백엔드 로드맵 4

Backend Developer Roadmap (3) - Git & GitHub

Git이란 무엇인가? Linus Torvalds가 2005년에 개발한 Git(깃)은 분산형 버전 관리 시스템(Distributed Version Control System, DVCS)의 하나로 소프트웨어 개발 분야에서 가장 널리 사용되는 버전 관리 시스템 중 하나이며 소프트웨어 개발 프로젝트의 소스 코드 및 기타 파일의 변경 이력을 관리하는 도구이다. 그렇다면 VCS가 무엇인가? Version Control System (VCS), 또는 버전 관리 시스템은 소프트웨어 개발에서 코드와 관련된 파일의 변경 이력을 관리하고 추적하는 도구나 시스템이다. VCS는 개발자나 개발 팀이 여러 목적을 달성하기 위해 코드를 효과적으로 관리하고 협업하는 데 도움을 준다. VCS의 종류로는 로컬 버전 관리 시스템 (Loca..

개발자 2023.09.04

Backend Developer Roadmap (2) - Learn a language [Java]

자바란 무엇인가? 위키백과에서 제공해주는 Java의 간략한 설명이다. 자바(Java)는 자바로 기술된 프로그램 개발 및 실행을 할 수 있는 소프트웨어 모임의 총칭이다. 자바 프로그램은 운영체제나 하드웨어에 의존하지 않는 바이트 코드(중간 언어)인 추상적인 코드로 구현된다. 따라서, 자바 프로그램을 실행하기 위해서는 자바 가상 머신(JVM)과 개발에 필요한 표준 라이브러리 세트와 컴파일러의 환경만 맞추면 자바 프로그램은 모든 환경에서 동일하게 동작한다. 이러한 실행환경과 개발환경을 제공하는 것이 자바 플랫폼이다. 자바의 장점 플랫폼 독립성 (Platform Independence): 자바는 "Write Once, Run Anywhere(WORA)"라는 철학을 가지고 있어서, 한 번 작성한 코드를 여러 플랫..

개발자 2023.09.03

Backend Developer Roadmap (2) - Learn a language [Prologue]

개발자가 되기 위해 언어를 배우는 것은 너무나도 당연한 이야기면서 쉽지 않은 일이다. '언어를 배운다'는 것의 기준을 정하기 쉽지 않기 때문이다. 나는 영어, 중국어, 일본어 자격증이 있다. 그렇기에 영어, 중국어, 일본어를 할 줄 안다고 얘기한다. 하지만 나는 독일에서 교환학생도 했고, 스페인 친구들도 굉장히 많아서 스페인어도 어느정도 알아들을 수 있다. 그럼 나는 독일어, 스페인어를 할 수 있다고 얘기할 수 있을까? 누군가는 이 정도 수준도 할 수 있다고 할 거고 누군가에게는 아닐 것이다. 프로그래밍 언어도 마찬가지라고 생각한다. 내가 어떠한 언어를 할 줄 안다는 기준을 어디에 두냐에 따라 내가 '코더'가 될지 '개발자'가 될지 나눠진다고 생각한다. 사족이 길어졌는데, 어쨌든 그렇기 때문에 '언어를 ..

개발자 2023.08.31

Backend Developer Roadmap (1) - Internet

오늘은 백엔드 최상단에 위치해있는 인터넷에 대해 정리해보고자 한다. 인터넷이란 무엇인가? 어떻게 작동하는가? 인터넷은 수 많은 컴퓨터들이 상호 연결되어 데이터와 정보를 주고받을 수 있도록 하는 글로벌 통신 인프라다. 인터넷은 패킷 스위칭(packet switching)이라는 기술을 기반으로 작동하며, 이는 데이터를 작은 단위인 "패킷"으로 분할하여 전송한 뒤 목적지에서 다시 조립하여 원래의 데이터로 복원하는 기술이다. 패킷 스위칭의 주요 특징은 다음과 같다 1. 패킷 분할 : 전송되는 데이터는 작은 패킷으로 분활되며 각 패킷은 헤더(Header)와 페이로드(Payload)로 구성되어 있다. 헤더에는 출발지와 목적지 주소, 패킷 순서 등의 정보가 담겨 있고, 페이로드에는 실제 데이터가 포함된다. 패킷의 종..

개발자 2023.08.30