IT 5분 잡학사전 #3

Noah·2023년 1월 18일
0

개발 도서

목록 보기
3/9
post-thumbnail

TIL 날짜 및 읽은 범위

  • 2023.01.17
  • Ep.11(라이브러리와 프레임워크, 비슷한 거 아니야?) ~ Ep.15(플래시의 서비스 종료와 스티브 잡스)

에피소드 11 : 라이브러리와 프레임 워크, 비슷한거 아냐 ?

얼핏 보면 비슷한 라이브러이와 프레임워크

공통점 : 개발 속도를 더 빠르게 만들어 준다

누군가 미리 작성해 놓은 코드이고, 우리의 개발 속도를 더 빠르게 만들어 주는 도구라는 점이 같아

코드로서 여러분을 도와주는 도구일 뿐 프로그램은 아니야

차이점 : 내가 제어하는가? 제어당하는 가?

누가 누구를 제어하는가 ? 이 질문을 떠올리면 돼

여러분이 어떤 도구에 대해서 모든 결정을 다 내리고 있다면 ? 라이브러리

누군가 정한 규칙에 따라 도구를 사용하고 있다면 ? 프레임 워크

제이쿼리, 부트스트랩으로 이해하는 라이브러리

제이쿼리는 자바스크립트보다 더 쉬운 방법으로 웹 사이트에 인터랙티브한 요소를 넣을 수 있게 해주고

부트스트랩은 웹 사이트의 화면을 구성 할 때 메뉴. 버튼. 레이아웃과 같은 것들을 편하게 구현

이 녀석들은 여러분이 필요할 때 불러서 쓸 수 있어

여러분이 라이브러리를 제어할 수 있는 거야

공부를 하다가 지식이 필요해지면 도서관에 가서 책을 빌리는 거랑 비슷해

라이브러리는 다른 라이브러리로 쉽게 대체할 수 있어

라이브러리를 교체한다고 해서 프로젝트의 모든 것이 와르르 무너지지 않아

라이브러리를 사용한 부분만 고치면 되거든

장고, 스프링으로 이해하는 프레임워크

우리는 프레임워크를 부를 수 없어. 프레임워크가 우리를 부르지

프레임워크가 우리를 제어해. 프레임워크를 사용해서 코드를 작성할 때는 프레임워크의 규칙을 따라야 한다는 거야

프레임워크에는 코딩 규칙, 파일 저장 규칙 등이 있거든. 규칙을 잘 지키면 ? 모든 것이 정상으로 실행되지

장고로 운영자 페이지를 만들고 싶다면 무조건 이름이 admin.py인 파일에 코드를 작성해야 해

사이트의 URL을 바꾸고 싶다면 ? 반드시 이름이 url.py인 파일에 코드를 작성해야 하지

중요한 건 여러분이 이 규칙을 바꿀 수 없다는 거야

장고로 개발하던 프로젝트를 스프링으로 바꾸고 싶다면 ? 모든 것을 교체해야 해. 폴더 이름, 파일 구성, 코드까지 모두 다!!

프레임워크는 신중하게 결정해야 해. 하지만 그 만큼 완성도가 엄청나게 높은 결과물을 보장한다는 장점이 있어

구분라이브러리프레임워크
제어권나에게 있다나에게 없다
교체 난이도매우 쉽다매우 어렵다

중요한 건 라이브러리, 프레임워크의 개념을 아는 것 !! 이 점을 꼭 기억할 것

“예전에 둘을 비교할 때 커피숍을 비교해준게 생각이 났다. 프랜차이즈 커피숍과 개인 커피숍! 무엇이 무엇인지는 알 수 있지? “


에피소드 12 : 제이쿼리는 반드시 배워야 하는 기술일까 ?

제이쿼리의 탄생!

탄생한 이유는 당시 자바스크립트가 지금 처럼 좋은 언어가 아니었기 때문이야

자바스크립트가 파이어폭스를 위한 코드, 인터넷 익스플로러를 위한 코드, 크롬을 위한 코드를 따로 작성해야 해서 개발자들이 정말 힘들어했지

이렇게 개발자를 힘들게 만드는 브라우저, 자바스크립트 모두 정말 재수 없다고 생각했어!

코드는 못생겻지, 브라우저 호환도 잘 안되지 정말 답답했지

이 대환장 파티의 콜라보를 제이쿼리가 정리해준 거야

제이쿼리만 공부하는 현상이 생겨 버렸다

하지만 여기서 새로운 문제점이 발생했어. 바로 사람들이 제이쿼리만 공부하기 시작했다는 거야

제이쿼리 개발자라는 포지션까지 생겨버렷지

사람들이 왜 제이쿼리에 빠졌던 걸까 ?

편의성 때문이기도 했지만 엄청나게 좋은 기능도 많았다는 것도 한몫했어

정리하자면 자바스크립트의 못난 모습관 기능, 웹 브라우저의 대환장 파티가 사람들이 제이쿼리에 빠지도록 만든 거야

지금도 자바스크립트는 그럴까 ? NO !

하지만 지금은 아니야

자바스크립트는 ES2015, ES2016, ES2017 을 거치면서 매우 아름다워졌어

기능도 좋아졌고 코드를 쓰기도 쉬워졌지

웹 브라우저와 자바스크립트의 호환성도 좋아졌어

“제이쿼리는 정말로 필요할 때에만 배워라!”

아직도 제이쿼리를 사용하는 웹 사이트, 회사가 많기 때문이야

취업하고 싶은 회사가 제이쿼리를 사용하지 않는다면, 제이쿼리보다는 자바스크립트를 공부하는게 나을거야

그리고 자바스크립트를 잘 알고 있다면 제이쿼리도 금방 공부할 수 있을거야


에피소드 13 : 그놈의 API, 대체 뭐길래 ?

API (Application programming interface) : 애플리케이션 프로그래밍 인터페이스

키보드와 비슷한 API

키보드는 컴퓨터에 무언가를 입력할 때 사용하는 도구지? 쉽게 말해 키보드는 컴퓨터와 여러분이 대화할 때 다리 역할을 해주지

여러분과 컴퓨터가 소통할 때 키보드를 쓰는 것처럼 프로그램끼리 소통할 때 쓰는 일종의 규칙을 코도화한 걸 API 라고 해

API는 프로그램끼리 소통하도록 도와준다

어떤 화면에 <사진 업로드> 버튼을 누르면 ‘사진 데이터를 데이터베이스에 저장한다’ 와 같은 동작이 이뤄져야 할 거야

그런데 화면은 버튼을 보여 주는 역할만 하고, 데이터베이스는 데이터를 저장하는 역할만 해

즉, 버튼이 눌러지면 ‘어디어디 데이터베이스를 찾아가서 어떻게 저장하라’ 와 같은 연결 역할을 해줄 녀석이 필요한거지

그게 바로 API 야

모두 소통을 도와주는 역할을 해

이를 테면, 기상청에서 제공하는 날씨 API를 이용하면 서울의 현재 날씨를 알 수 있지

서울의 현재 날씨 가져오기 기능으로 데이터 베이스에서 정보를 얻는 거야

핵심은 ?! API 는 프로그램끼리 소통하도록 연결해 주는 녀석을 가리킨다는 거!

웹 API도 알아보자

웹 API는 브라우저와 개발자를 위해 만든거야

예를 들어 크롬 브라우저에서 동작하는 어떤 프로그램을 개발하고 싶을 때 여러분이 만든 코드와 크롬 브라우저를 연결해야 하잖아 ?

그럴 때 웹 API 를 쓰는 거야

웹 API 의 마이크 접근 권한 기능을 사용하면 크롬 브라우저와 마이크를 연결하는 코드를 여러분이 직접 만들지 않아도 크롬 브라우저에서 마이크 기능을 간단하게 사용할 수 있어 카메라도 마찬가지야

API 작동 방식의 특징은? 사용하는 사람은 알 수 없다는 것!

사용자는 API 의 작동 방식을 알 수가 없거든

여러분이 키보드를 사용할 때 키보드의 작동 방식을 알 수가 없거든

웹 API 에는 사용자의 위치를 알려 주는 기능이 있어서 내가 지금 서울에 있는지 제주도에 있는지 보여 줄 수는 있지만 그 원리는 알 수가 없어

우리는 그저 API 가 제공하는 기능의 결과만 보는 거지

여러분이 사용자의 위치가 필요한 애플리케이션을 개발할 때, 굳이 웹 API 의 사용자 위치를 제공하는 기능의 원리까지 알아야 할 필요는 없다는 거야

그저 API 를 사용해서 사용자의 위치만 가져온면 돼

API 가 필요한지 아닌지는 모두 여러분이 무엇을 원하는지에 달려 있어

API 에서 제공하는 기능이 완전히 마음에 들지 않는다면 직접 만들 수 있겠지 ?

참고로 API 는 한번 직접 개발해 보는 것도 좋은 경험이 될 거야

“API 에 대한 개념이 부족했는데, 확실하지는 않지만 조금 감이 잡히는 느낌이다. 아무 생각없이 가져다가 쓰기만 했었는데, 이제는 어떻게 가져다 써야하는지, 무슨 기능을 하는지 감이 잡힌다.”


프로그래밍 초보가 하기 쉬운 실수 😅

실수 3 : 처음에 너무 열심히 한다

프로그래밍 공부를 열심히 하는 것은 좋아

하지만 가끔씩은 여유를 갖고 천천히 달리는 법도 알아야 해

처음에는 열정이 넘쳐서 하루에 10시간씩 코딩하고 싶을 수도 있지만, 그러면 결국 치져서 아무것도 하지 못 하게 될 수도 있어

한 번에 많이 하는 것보다 매일 매일 꾸준히 하는 것이 좋아. 프로그래밍하는 습관을 들이는 거야

그럼 하루에 얼마나 해야하는가 ? 지금 자신이 프로그래밍을 즐기고 있는지 확인하면 돼!

만약 그런 것 같이 않다면 당장 손을 떼고 쉬는 것이 좋아

그리고 다시 프로그래밍을 하고 싶은 마음이 솟아나면 그때 하면 돼

실수 4 : 공부했는지 체크하기 위해서만 공부한다

프로그래밍 공부를 일하듯이 하는 사람을 볼 수 있어 그런데 프로그래밍 공부는 그렇게 하면 안돼

HTML, CSS, 자바스크립트, SQL 등 공부할 목록 또는 리스트 만들고 하나씩 마칠 때마다 체크한 다음, ‘이거 다 했으니까 공부 끝! 난 지금부터 프로그래머’ 이렇게 생각하면 안 된다는 거야

프로그래밍 공부는 체크리스트를 완성한다고 해서 끝나지 않아

그러니 공부를 끝내기 위한 공부 체크리스트 말고, 무엇을 만들지 프로젝트 체크리스트를 작성해 봐

완벽하게 구현하지는 못 하더라도 챗봇이나 유튜브와 같은 서비스나 게임을 개발하는 것도 좋은 경험이 될 거야

그렇게 공부하다 보면 어느새 취업 포트폴리오가 완성되어 있을 거야

실수 5 : 기한 없이 공부한다

사람은 원래 편하고 싶어 하는 본성이 있어서 속절없이 시간을 흘려보내기 쉬워

그래서 보통 뭔가를 하려면 압박을 주는 게 좋아

언제까지 학교, 학원만 다닐 수는 없잖아. 그러니까 스스로 자신을 압박할 방법을 찾아야 해

다짐하는 문구를 써서 벽에 붙이고 매일 같이 읽든지, “OO 일까지 파이썬 문법 공부를 못 끝내면 나를 매우 쳐도 좋다! “ 또는 “OO일까지 이 프로젝트를 끝내지 못하면 너에게 소고기 쏜다!” 와 같은 강력한 약속을 친구와 하는 거야

만약 여러분이 독학한다면 기한을 따로 정해 두지 않는 한 다른 방법이 많지 않아서 이렇게라도 하는 게 좋아

공부하기로 마음 먹었다면 목표와 함께 기한을 꼭 설정하도록 해

여러분이 이 글을 읽고 더 좋은 프로그래머가 되었을면 좋겠다

앞에서 언급한 실수를 저질렀다고 해도 너무 좌절하지는 마

사실 전부 다 내가 했던 실수이기도 하거든

“조금 혼나기도 했지만, 반성의 시간이 되었다. 틀어진 방향을 다시 잡아주었다. 또한 취업만 생각해서 잠시 잊고 있었다. 프로그래밍은 너무 재미있는 놀이라는 것을 ! 내가 만들고 싶은 모든 것을 만들 수 있게 해주는 도구 라는 것을! ”


에피소드 14 : 도메인은 왜 돈을 주고 사야 할까 ?

숫자 외우기가 너무 불편해서 만든 도메인 시스템

인터넷에 연결된 웹 사이트는 모두 IP 주소로 찾을수 있어

그리고 IP 주소는 전화번호처럼 그냥 긴 숫자들에 불과하지

그래서 IP 주소를 보면 외우기 힘들다느 생각이 절로 들거야

바로 그 불편함을 해소하려고 도메인 시스템이 생긴 거지!

도메인 시스템은 마치 거대한 전화번호부 같은 거야

목록 순서이름IP주소
1naver.com202.131.30.11
2google.com173.194.126.240
3easyspub.co.kr183.111.161.94

도메인 시스템을 제대로 관리하려면 ?

도메인 시스템을 관리하는 방법이 있어. 쉽게 말해서 전화번호부를 관리하는 전화번호부가 있다고 생각하면 돼. 여기서는 각각 메인 전화번호부, 서브 전화번호부라고 할게

예를 들어 google.com 을 입력하면 일단 메인 전화번호부를 봐. 그리고 google.com 이 어떤 서브 전화번호부에 있는지 보는 거지. 그러면 메인 전화번호부에서 3번째 서브 전화번호부에 google.com이 있다고 알려 주면 거기 가서 찾는 식이야

이런 서브 전화번호부를 레지스트리 (registry)라고 해. 레지스트리는 기업에서 운영하지

유명한 레지스트리는 바로 닷컴(.com)이야. 닷컴관리는 베리사인(Verisign) 이라는 회사에서 해

도메인은 어디서 살까 ?

레지스트리를 관리하는 기업은 도메인을 만드는 역할을 할 뿐 도메인을 직접 판매하진 않아

도메인은 고대디(GoDaddy), 가비아(gabia), 후이즈(Whois)와 같은 리셀러(reseller) 에게서 사야 해

그 이유는 도메인을 레지스트리에 등록하는 과정이 매우 복잡하기 때문이야

나도 레지스트리를 운영할 수 있을까 ?

당연히 할 수 있어! 아이캔(ICANN)에 신청만 하면 돼

ICANN 은 도메인을 관리하는 비영리 기구인데 바로 이곳이 최상위 전화번호부 역할을 해

레지스트리를 운영하려면 고민을 많이 해야한다

사실 신청이 비용이 엄청나. 18만 5,000달러 정도야 ! 한화로는 2억 2,000만원 쯤 되지!

그리고 도메인이 인터넷 환경에 필요한지, 여러분이 도메인을 운영할 수 있는 인프라나 기술, 고객 관리 능력을 갖추고 있는 등을 ICANN 에 자료로 제출해서 증명해야 해

레지스트리를 운영하면 그 순간부터 인터넷을 사용하는 사람들의 시간과 돈에 영향을 미치기 때문이지

레지스트리를 운영한다면 어떤 일이 벌어질까 ?

그 도메인으로 뭐든지 할 수 있어! 특히 도메인을 특정인에게만 만들어 줄 수 있다는 점이 수익성을 크게 높이는 원인이 돼

정리

  • 도메인을 만드는 건 레지스트리다
  • 레지스트리는 IP 주소와 도메인을 적은 전화번호부이다
  • 레지스트리 운영사가 되려면 엄청난 돈과 인프라가 필요하다
  • 도메인을 구매하면 레지스트리 운영사가 아니라 리셀러에게 돈을 지불하는 것이다
  • 리셀러는 계약 관리, 결제 처리, 도메인 비용 지급 등의 일을 한다

“새로운 지식의 습득”


에피소드 15 : 플래시의 서비스 종료와 스티브 잡스

어도비 플래시 ?

플래시는 게임, 영상을 제공하는 웹 사이트에서 사용하는 프로그램이야

처음에는 플래시가 아니라 퓨처웨이브 소프트웨어 (FutureWave Software) 라는 회사에서 만든 퓨처스플래시 애니메이터 (FutureSplash Animator) 라는 프로그램이었어

이 프로그램은 만화와 애니메이션을 그리는 사람을 위한 제품이었지

그런데 매크로미디어 (Macromedia)라는 회사가 인수해 그리고 이름을 플래시로 바꾸지

애니메이션을 브라우저에 띄울 수 있게 해주는 프로그램이라는 가능성을 발견해

그래서 플래시 플레이어 플러그인이 생긴 거야

웹 사이트를 아름답게 만들어 준 플래시

플래시 플레이어 플러그인은 엄청나게 인기를 끌었어. 왜냐하면 당시에는 지금처럼 멋진 웹 사이트를 만들 수 없었거든

웹 개발자가 웹 사이트를 훨씬 아름답게 디자인 할 수 있는 기회가 생긴 것이지

유튜브가 사용한 플래시

당시 스타트업으로 시작한 유튜브가 비디오 영상을 재생하는 도구로 플래시를 사용했는데, 바로 이것이 플래시의 위상을 엄청난 변화를 일으켰어

그 당시에는 영상이 불가능했거든. 플래시가 등장하기 전에는 인터넷에서 영상을 볼 수 없었어

많은 회사에서 영상 재생 플레이어로 플래시를 선택했고, 웹 사이트의 필수 요소로 만들었어

웹 사이트를 브라우징하려면 그냥 일단 플래시부터 깔아야 했을 정도지

플래시가 없으면 영상도 못 보고, 게임도 못 하니까 말이야

스티브 잡스와 플래시

그러던 어느 날 스티브 잡스가 외쳤어 “플래시는 이제 그만 쓰자”

스티브 잡스의 편지 1. 플래시는 오픈소스가 아니다

플래시는 오픈 소스가 아니라 어도비 프로그램이어서 인터넷을 사용하는 전 세계인이 어도비라는 회사에 의존할 수 밖에 없는 형국이었던 거지

플래시는 어도비가 관리하므로 어도비가 주요 의사결정을 내릴 때마다 모든 사용자가 영향을 받는 거야

스티브 잡스는 HTML5, CSS3 가 제시하는 웹 표준을 믿었고, 그런 웹에 대한 신념이 있었어

웹은 누구나 참여하고 실행할 수 있는 생태계라고 믿었지

그런데 단 한 회사가 모든 것을 통제하고 의사 결정을 내리다니! 그러면 안 된다고 생각했던 거야

스티브 잡스의 편지 2. 플래시는 믿음직하지 않다

플래시는 테스트톱을 위한 프로그램이므로 플래시와 상호작용하려면 마우스를 활용해야 했어

손가락 터치를 활용하는 iOS로서는 이 점이 개발을 어렵게 만들었지

플래시는 보안 이슈도 많았어. 실제로 많은 사람들이 플래시 때문에 해킹을 당하고 바이러스에 감염 되었어

플래시의 안녕과 웹 기술의 발전

스티브 잡스가 플래시를 iOS 에서 배제하겠다고 결정 후 커다란 변화를 가져왔어

HTML5, CSS3 기술의 개발 속도에 박차를 가했지

그 덕분에 플래시 없이도 아름다운 웹 사이트를 만들 수 있었어

어도비는 결국 2020년 12월 31일에 플래시의 종료를 공식 발표했지

플래시는 우리 곁을 떠났지만 우리에게는 더 멋진 웹 표준이 생겼어

“불편함이 있어도 좋은 점이 더 많다면 개선하기 보다는 참고 사용하거나 유지하는 경우가 많다. 어떻게 보면 그게 안주하는 것이 아닐까 그게 앞으로 나아가지 못 하게 만드는 함정 같다. 그 함정에 빠지지 않고, 자신에 대한 믿음을 가지고 변화에 성공한 스티브 잡스의 모습을 닮고 싶다”

profile
프론트엔드가 꿈인 코린이

0개의 댓글