그렇다 제목부터 '나 읽어야될 것 같지 않니???' 라고 말하길래 도서관에 입고되자마자 재빨리 빌려 읽었다!
읽은 한줄평으로는 "정말 커뮤니케이션 할 수 있는 딱 그정도..?"
책이 250page? 정도 밖에 안되기 때문에 깊이 있는 것을 다룰거라 생각하지 않았기 때문에 정말 IT쪽이 어떤 흐름으로 돌아가는지 알긴좋겠다 싶어서 읽은 책이라.. 딱 고종도 였다~!
저자도 'IT세상에 대한 큰 그림을 그릴 수 있고, IT와 사람 사이에 연결점이 될 수 있었으면 좋겠다'라고 했는데, 원하는 바는 딱 이루신 것 같다.
그럼 잊기 전에 정리를 해보도록 하쟈.
관계형 데이터베이스 :
: 키(key)와 값(value)들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스이다. 1970년 에드거 F. 커드가 제안한 데이터 관계형 모델에 기초하는 디지털 데이터베이스이다.
: 이 모델은 데이터를 컬럼(column)과 로우(row)를 이루는 하나 이상의 테이블(또는 관계)로 정리하며, 고유 키(Primary key)가 각 로우를 식별한다. 로우는 레코드나 튜플로 부른다.
키 (Key)
테이블의 각 로우에는 저만의 고유 키(key)가 있다. 한 테이블 안의 로우는 다른 테이블들의 로우로 연결이 가능한데, 이는 연결된 로우의 고유 키를 위한 컬럼을 추가함으로써 이루어진다. (이러한 컬럼들은 외래 키로 부른다)
관계 (Relationships)
관계는 테이블 간에 둘 다 존재한다. 이 관계들은 일대일, 일대다, 다대다, 이렇게 세 가지 형태로 이루어진다. 대부분의 관계형 데이터베이스들은 각 로우의 각 컬럼이 하나의 값만을 보유할 수 있도록 설계되어 있다. (값은 원자적이다)
출처 : 위키백과
IT 산업에서 서비스가 만들어지는 과정
완벽한 프로세스가 없고, 고객의 니즈와 상황에 맞춰 서비스가 발전되어감.
-> 그래서 저자가 말하는 것은 '기획자는 고객을 포함한 모든 구성원들과 커뮤니케이션을 하는 것이 중요하다'
컴퓨터는 기계어인 0,1을 사용하여 구동
그래서 인간과 컴퓨터 사이에 컴파일러라는 프로그램을 만들어서 소통을 하게 된다.
개발자는 IDE(Integrated Development Environment)라는 개발하기 위한 모든 것을 제공해주는 환경(통합 개발 환경)을 통해 프로그래밍 파일을 만듦
다양한 컴퓨터 언어를 구분하는 하나의 기준 "저수준 or 고수준"
컴퓨터 구성 요소
이렇게 구동되는 것을 우리 대신해주는게 바로 "운영 체제(Operating System)" OS이다.
출처 : 주관적 책갈피
근데 이 운영체제가 다양하기 때문에, 이에 맞는 개발 언어가 또 갈라지게 된 것
또 이렇게 운영체제가 다양해지기 때문에 JAVA팀은 JVM(Java Virtual Machine)이라는 SW를 만들어 그 위에서 JAVA를 실행시키게 함 (지금 도커같은 느낌). 파이썬도 마찬가지.
네트워크 범주
그렇다면 네트워크는 어떻게 구동되는데?
리눅스는 왜 중요한걸까? (리누스토발스... 슈퍼천재핵머싯는 사람..)
그럼 나도 서버하나 만들어볼까?
API란?
클라이언트 입장에서 바라본 API
RESTful API를 사용하면 주소 갯수가 줄어들게 된다. 왜냐면 CRUD를 하나의 주소로 관리하기 때문!
클라이언트 입장에서 바라본 API
요청에 대한 응답(Respond)정보로 위의 정보를 담든 요청에대한 정보를 담아 주고받게된다.
다른 소프트웨어와도 API를 주고받아 타 기능을 끌어 사용할 수 있다구!
그리고 이렇게 주고받을 때 쓰는게 바로 JSON형식!
HTML이란?
Hyper Text Markup Language. 서로다른 운영체제나 어플리케이션에서 모두 호환되도록 일정한 형식(HTML)을 만든것. 얘는 브라우져만 있으면 동일하게 표기된다.
주로 "인터넷의 뼈대"라고 표현함
<a>
, <ol>
, <p>
, 등등)CSS란?
HTML을 더 예쁘게 꾸미기위해 디자인 요소를 넣은 것. (HTML + CSS를 '퍼블리싱 작업' 또는 '마크업'이라고 표현함)
보통 "살"로 표현함
그럼 JavaScript는 몬데?
인터넷은 HTML '태그'에 CSS를 연결하고 js파일을 연결함
우리가 입력하는 것은 js를 통해 API 요청으로 변환되어 서버로 송수신됨
으... 근데 브라우저도 어플리케이션이다보니 버전도 다 다르고, 브라우저 자체도 다양해지다보니 거기에 따라 작동유무가 갈릴 수 있다..
-> '브라우저 버전의 파편화'라고 함.
요즘 핫한 반응형 웹은 뭐야?
요즘은 네이티브 애플리케이션(운영체제별 고유의 개발언어 사용한것), 모바일 웹행, 하이브리드 애플리케이션으로 넓어짐
txt 파일로 정보를 저장하고 처리한다면 한번에 여러개의 CRUD를 처리할때 중간에 데이터가 깨지거나 잘못 수정되는 경우가 생길 수 있음
만약 처리할때마다 1%가 잘못된다고하면 10,000명의 데이터중 100명의 데이터가 이상해지고 회사가 곤란해 질 수 있는 상황이 발생하게 된다.
또한 데이터가 계속 쌓인다면 txt 파일도 증가하고 그 증가한 만큼 해당 데이터를 찾기는 쉽지 않음
그래서 나온게 "관계형 데이터베이스"
이런 데이터베이스는 프로그램이다보니 서버컴퓨터 뿐만 아니라 클라이언트컴퓨터에서도 작동이 가능함
하지만 겉으로만 보고는 데이터가 클라에 있는지, 서버에 있는지 파악하기 어렵운게 사실.
만약 프로필처럼 '고객'이 '프로필 이미지'를 올린다면 '관계'가 설정 되는데, 이럴때 DB에 이미지 사진의 주소를 관리해서 비공개, 변경 등을 조절할 수 있음
으와 생각했던 것 보다 시간이 더 오래 걸렸다. 오래걸린만큼 읽을 땐 이해한다고 생각했지만 못했기 때문에 그런것 같다. (역시 공부하고나서 말로 설명해봐야해..끄덕..)
그래도 진짜 얕지만 어디서 IT 관련 대화할 때 끄덕거리면서 대충 어떤 상황인지는 이해할 수 있게 되었다.
위에 내용 중에서 중요한 부분만 꼽으라면 단연 4장, 7장! API, JSON, 데이터베이스 이다.
이걸 모르고 IT세계로 입문한다는건 말이 안돼..
그리고 누군가 "그래서 이 책 추천이야? 한번 읽어볼까?"라고 묻는다면 비전공자라면 "응!!!! 추천!!!"이다! 사실 SDK도 전에 ubuntu로 flutter할 때 설치했었는데 이건 몬데 까는거야..? 라고 생각하고 그냥 깔았었다... (나녀석 반성..) 이걸 보고나서야 아... 그래서...! 라고 이해하게 되었으니까.
사실 컴퓨터쪽이 프론트, 백, 데이터관리, AI 등 분야도 많고 각 분야마다 공부할게 많다보니 전공자가 아니라면 전부다 알긴 쉽지 않다.
그때 이런 책 하나 읽어두면 회사에서 커뮤니케이션할 때 '아 이 사람 비전공자라던데 말좀 통하네~??' 소린 듣지 않을까? ㅋㅋㅋ는 내 생각!
무튼 다른사람에게도 도움이 되는 글이길 바라며 마친다:)!