Bin's Blog

[후기]비전공자를 위한 이해할 수 있는 IT 지식 본문

독후감

[후기]비전공자를 위한 이해할 수 있는 IT 지식

hotIce 2024. 1. 17. 23:20
728x90

들어가며

PM 업무를 하다 보면 개발 지식이 필요한 순간이 많다. 다행히 개발 공부를 해왔던 것들이 있기 때문에 그런 것들이 도움이 많이 된다. 이 책을 구매하게 된 이유는 리더 PM의 추천이 있었다. 이 책을 금방 읽을 수 있었던 것은 이해하기 어렵게 쓰이지 않았으며, 기존에 알았던 내용들이 생각보다 많이 있었기 때문이다. 따라서 오늘은 내가 몰랐던 부분에 대해 언급하며 간단히 글을 남기려고 한다. 

 

줄거리

이 책은 일단 비전공자가 쓴 책이다. 그가 비전공자로서 겪었던 어려움들을 바탕으로 쓴 책이다. 이 책의 총 10개의 장으로 구성되어 있으며, 처음 "OT"와 마지막 10장을 "정리"파트를 제외하면 200P 정도의 두껍지 않은 책이다. 정말 비개발자들이 필요한 소재로만 구성되어 있어, 개발자들이 대화하는 것이 무엇인지 얕게라도 알고 싶다면 이 책을 추천한다. 

이번 포스팅은 내가 몰랐던 부분을 위주로 정리하려고 한다. 

 

2장은 프로그래밍 & 운영체제로 시작한다. 프로그래밍이란 프로그래밍 언어로 문서화 작업을 하는 행동이라고 정의한다. 사람이 이해하는 언어 그리고 기계가 이해하는 언어가 다르기 때문에 컴파일러가 인간의 언어를 해석해서 컴퓨터가 이해할 수 있는 언어로 바꿔준다. 

우리가 쉽게 코딩을 하기 위해서 IDE(Intergrated Development Environment)라는 통합 개발 환경이라는 것을 사용해서 쉽게 개발할 수 있는 환경이 조성된다. 나는 여지까지 VScode만 써서 개발을 해왔다. 운영체제나 언어에 따른 다양한 IDE가 존재한다. Android Studio, Xcode, Eclipse, PyCharm 등이 있다. 참고로 난 Xcode가 애플 기기의 앱을 만들기 위해서 사용하는 IDE라는 것을 처음 알았다. 

이 챕터에서 고수준 언어 저수준 언어가 등장한다. 너무 쉽게 사람이 이해할 수 있는 언어가 고수준이고, 저수준은 컴퓨터 친화적인 언어이다. 저수준 언어는 컴퓨터의 사양은 낮추고 저렴하게 사용하기 위해 주로 가전제품에 많이 들어간다. 

운영체제에서 CPU 컴퓨터의 머리이고, 메모리에 필요한 데이터를 바로 갖다 쓰고, 보조기억장치라는 데이터 창고가 존재한다. 

 

3장은 네트워크, 클라이언트, 서버에 대해서 다룬다. 왜 서버 프로그램은 리눅스 위에서 돌릴까? 다른 운영체제를 제치고 사용하는 이유는 무료이기 때문이다. 리눅스에서 유명한 버전은 Ubuntu와 Red hat이 있다. Red hat은 유료버전이다. 유료인 이유는 무료 운영체제를 사용하다가 문제가 생겨서 서버에 고장나거나 멈추면, 큰 손실이 일어나기 때문에 운영체제의 품질을 보장하기 위해서 Red hat을 사용한다. 

오늘날 웹사이트는 365일 24시간 상시 서버가 운영된다. 개인이 서버를 운영하면 돈도 많이 들기 때문에 서버를 대신 운영해주는 곳을 호스팅 업체라고 부른다. 한국에는 Cafe 24, 가비아가 있고, 미국에는 AWS가 있다. 

 

4장은 API와 JSON에 대해서 다룬다. 데이터를 요청하고 응답할 때 API를 이용한다. 그리고 잘주고 받는지 확인이 필요하다. 이럴 때 사용하는 것이 HTTP 상태 코드이다.

1xx는 요청이 수신되어 처리 중, 2xx은 요청 정상 처리, 3xx은 요청이 완료되면 추가 행동이 필요, 4xx는 클라이언트 오류(프론트), 5xx는 서버 오류(백엔드)이다. 

기본적으로 데이터를 다룰 때 우리는 CRUD라고 불리는 4가지 요청을 사용한다. 그런데 이렇게 사용하면 주소가 너무 많아지고 관리하기가 힘들어진다. 그래서 사람들이 체계적으로 관리하고 싶어서 생겨서 등장한 것이 REST(Representational State Transfer) API이다.

생성은 POST, 조회 GET, 전체 수정 PUT, 일부 수정 PATCH, 삭제는 DELETE이다. 

SDK(Software Development Kit)은 소프트웨어를 개발할 때 도움을 주는 다른 소프트웨어이다. 예시로 내 소프트웨어에 구글 지도 기능을 넣고 싶으면 SDK를 설치하면 된다. 

JSON은 데이터를 주고받는 형식이다. { key: value} 형식으로 구성되어 있다. 

 

6장은 Web에 대해서 다룬다. HTML은 프로그래밍 언어가 아니라 문서이다. 기본적으로 Web은 HTML(뼈대), CSS(디자인), JavaScript(동적인 움직임) 이 세 가지 요소가 어우러져서 만들어진다.

Web과 App의 차이는 Web은 개발자가 서버에 배포하면 심사 과정 없이 바로 반영이 되는 반면에, App은 심사 과정 및 유저의 업데이트 과정이 있어야 한다.  

우리가 작성한 HTML, CSS, JavaScript가 브라우저별로 작동할 수도 있고 작동하지 않을 수도 있다. 이것을 브라우저 버전의 파편화라고 부른다. 어떤 브라우저든지 동일하게 보이고 싶게 하는 작업을 크로스 브라우징이라고 한다. 

 

7장은 데이터베이스와 이미지 처리에 대해서 다룬다. 데이터에 이름, 성별, 생일, 주소 등 그 사람을 식별하는 고유 번호를 저장하고 이것을 바탕으로 데이터를 철저히 관리하는 기법을 관계형 데이터베이스라고 한다. 관계형 데이터베이스를 관리하는 시스템을 RDBMS라고 한다. 대표적으로 MySQL, Oracle DB, MS SQL 등이 있다. 

 

마무리하며

기초 책이지만 입문자도 이해할 수 있게 너무 잘 쓴 책이라고 생각한다. 이미 아는 사람에게는 시시한 내용일 수도 있지만 돌다리도 한 번 더 두드려 보고 건너라고 제대로 몰랐던 내용이 있을 수도 있다는 생각에 과감하게 구매를 하게 됐다. 개발 공부는 끝이 없다. PM을 하는 요즘 나는 더욱더 개발에 대한 열망이 나를 휩싸지만 내게 맡겨진 직무에서 최선을 다하며 개발의 끈을 놓지 않는 사람이 되고 싶다.  

728x90