📚 자료실

[도서] IT 5분 잡학사전

hjinn0813 2024. 6. 6. 15:40
728x90
 
IT 5분 잡학사전
저자
배지현, 니꼴라스
출판
이지스퍼블리싱
출판일
2022.09.30

친구 추천으로 얼마 전에 도서관에서 읽은 이 책에서 기억하고 싶은 내용들을 정리해봤다.

책 내용이 담겨있어서 이 글만 개별적으로 검색비허용 하고 싶은데.. 티스토리는 그게 안 되네..?😅


스택오버플로우에서 조사한 2023년 가장 많이 사용하는 프로그래밍 언어 순위

→ 1위 JavaScript, 2위 HTML/CSS, 3위 Python, 4위 SQL, 5위 TypeScript

스택오버플로우에서 조사한 2023년 가장 많이 사용하는 기술

→ 1위 Node.js, 2위 React, 3위 jQuery

이 부분을 읽고 프로그래밍 언어 순위에서 5위 안에 드는건 알고 있어야겠다고 생각했다..


프로그래밍 언어의 종류

※ 참고: https://modulabs.co.kr/blog/interpreter-and-compiler/

  • 인터프리터 언어 : 코드를 한 줄씩 읽고 해석해서 실행함. 동시통역. (ex. JavaScript, Python)
  • 컴파일 언어 : 코드를 기계어로 번역하는 컴파일러가 코드 전체를 분석해서 최적화하고 실행. 순차통역. (ex. C언어, Java)

새 프로그래밍 언어를 쉽고 빠르게 공부하는 방법

  1. 공식문서 살펴보기
    해당 언어의 공식문서에는 올바른 사용 예시와 관련 커뮤니티 등 자료가 전부 있으므로 참고하는게 좋다.
  2. 문법 확인하기
    문법을 보고, 작성해보고, 이해하는 과정
  3. 다른 언어와 비슷한 특징 집중해서 보기
    기존에 아는 언어가 있다면 내가 아는 언어와 새로운 언어의 비슷한 부분을 살펴보고 공통점과 차이점을 파악.
    (현재 Python 공부하면서 JS랑 비교하고 있으니 맞게 하고 있는거구나!)
  4. 새 언어로 코딩 시도하기
    기본적인 코드 작성부터 함수 선언 등 다양한 패턴을 새 언어로 작성해보는 과정. 연습을 해보면서 더 빨리 익힐 수 있다.
  5. 튜토리얼 시작하기
    공식 문서에 있는 튜토리얼을 수동적으로 따라하지 않고, 오픈소스 프로젝트를 가져와서 해당 튜토리얼을 참고하여 해체하고 다시 만들기. (멀쩡한 시계 분해했다가 다시 조립하는 느낌인데?)
  6. 나만의 프로젝트 만들기
    이미 만들어봤던 주제의 프로젝트를 새로운 언어로 만들어보기

  • 이진검색 : 단계마다 배열의 중앙에서 검색을 시작해서 찾으려는 값이 없는 방향은 제외.
    데이터의 정렬이 끝난 배열에서만 사용 가능하다.
  • 스택, 큐 : 추상자료구조 Abstract Data Type (ADT)에 해당한다. 실생활에서 사용되는 예시는 아래와 같다.
    • 스택 : 뒤로가기 버튼, 되돌리기 단축키
    • 큐 : 쇼핑몰 주문처리 시스템

  • MongoDB : noSQL의 일종인 도큐먼트 데이터베이스를 관리할 수 있는 툴.
    보통의 데이터베이스는 표 형태인데, MongoDB는 이걸 JSON 형태로 저장함.
  • 도커 Docker : 어떤 컴퓨터나 운영체제에서도 같은 개발환경을 준비할 수 있도록 도와주는 툴.
    도커가 만든 개발환경은 컨테이너 형태로 존재하고, 컨테이너는 서로 분리되어 있고 독립적이다.
    컨테이너를 추가해야할 경우에는 복제도 가능하다.
  • 머신러닝 : 데이터라벨링. 인공지능 학습시키는 방법
  • 딥러닝 : 머신러닝의 하위개념. 구현 과정에서 여러 겹으로 층을 만들기 때문에 이런 이름이 붙었다.
  • 데브옵스 DevOps : 개발(development)과 운영(operations)의 합성어.
    개발자와 기술전문가 사이에서 소통, 협업, 통합을 강조하는 개발 환경이나 문화.

앱개발 관련 용어

1. 하이브리드 앱 : 웹사이트를 보여주는 웹뷰. 주소창 없는 브라우저.

- 장점 : 네이티브 앱 개발 지식이 필요없음. 일반 사이트 만들듯이 HTML, CSS, JS 가지고 만들면 되니까

- 단점 : UI를 직접 설계하고 만들어야해서 귀찮음. 스마트폰 성능을 온전히 활용할 수 없다

2. 크로스플랫폼 앱 : 애플과 안드로이드 모두에서 사용 가능한 앱. (ex. dart라는 언어로 코딩하는 flutter)

- 장점 : 개발자가 익숙한 코드로 한번만 작성하면 앱이 2개가 나온다.

- 단점 : 기술적 한계로 네이티브 앱의 성능을 따라갈 수 없다.

3. 네이티브 앱 : 애플이나 안드로이드만을 위한 언어로 만들어진 앱. (애플은 스위프트, 안드로이드는 자바/코틀린)

- 장점 : 폰의 성능을 최대로 사용할 수 있다.

- 단점 : 새로운 언어를 2개나 배워야해서 시간이 더 걸리고, 유지/보수도 따로 해야함.


크롬 브라우저 익스텐션 추천

- Colorzilla : 웹페이지 색상 스포이드로 뽑아내기

- Momentum : 브라우저창 최초 오픈시 할일 알림 기능

- CSS Viewer : 페이지의 CSS 요소 확인 가능

- JSON Viewer : 제이슨 파일을 깔끔한 형식으로 보여줌

- React Developer Tools : 리액트 state, props 등 정보 확인 가능. 디버깅에 유용함.

- Whatfont : 웹사이트에서 폰트 종류 바로 확인 가능

- Grid Ruler : 요소의 간격이나 크기 등 바로 측정 가능

- BuiltWith Technology Profiler : 웹사이트가 어떤 기술로 만들어졌는지 확인 가능

728x90