비전공자를 위한 IT지식 02

yeonk·2021년 8월 23일
0

도서 리뷰

목록 보기
2/3
post-thumbnail



1. 애플리케이션 & 웹 (5~6장)



애플리케이션

애플리케이션: 설치해서 사용하는 모든 프로그램
(윈도우에서는 '응용 프로그램'으로 칭함)

  • 애플리케이션 버전: 점(.)을 기준으로 숫자 3부분으로 표현

  • 각 숫자의 위치별로 다른 의미를 가지며, A.B.C라고 예를 들면 아래와 같이 생각할 수 있다.
    A: 하위 버전과 호환이 가능하지 않은 큰 변화
    B: 하위 버전과 호환이 가능하지만 큰 변화
    C: 작은 변화

  • 사용자가 업데이트를 진행해야 새로운 버전을 사용할 수 있기 때문에 변동 가능한 회사 정책에 대한 정보는 애플리케이셔에 넣지 않는다(API로 서버에서 불러오도록 함).



구글 플레이 스토어 vs 앱스토어

앱스토어

  • 프로그램을 등록하기 위해서는 심사가 이루어져야함(reject 가능성이 높다)
  • 리젝된 경우 사유를 명확하게 제시해주고, 문제가 고쳐지면 통과
  • 심사 신청 기간이 미지수
  • 애플 지침에 어긋 날 경우 경고장을 받는다.

플레이 스토어

  • 심사과정이 적어 빠르게 마켓에 반영
  • 구글 지침에 맞지 않는다면 예고 없이 마켓에서 내려질 수 있음



웹(web)

웹의 4가지 이슈
1. HTML, CSS, JavaScript
2. 브라우저
3. 반응형 웹
4. 하이브리드 애플리케이션



HTML

  • 운영체제에 관계없이 동일한 정보 확인 가능
  • 태그: 정보를 표현하기 위한 코드. HTML을 구성하는 코드
  • HTML은 프로그래밍 언어가 아님
  • head와 body로 이루어져 있음



CSS(Cascading Style Sheets)

  • HTML에 디자인을 입힐 수 있는 코드
  • '퍼블리싱'작업: HTML+CSS (cf. 퍼블리셔)
  • '마크업' 개발자: HTML 작업을 주로 하는 개발자



JS(JavaScript)

  • 웹의 프로그래밍 언어 역할
  • Java와 큰 관계가 있지는 않음



웹 vs 앱

  • 웹에서 나타나는 HTML, CSS, JS 는 모두 사본이다.
    (새로고침 할 때마다 새롭게 다운로드)
  • 애플리케이션은 업데이트를 위해 유저가 매번 다운로드해야 하지만 웹은 서버의 원본을 바꾼 후 새로고침하면 반영
  • 웹은 수정이 용이하며, 빠르게 적용 가능
  • 웹은 네트워크의 영향을 크게 받음 (애플리케이션은 반대)



웹의 특징

브라우저 버전의 파편화

각 브라우저는 서로 다른 애플리케이션이기 때문에 브라우저에 따라 그 안의 구현 방식이 다르다.

브라우저의 파편화: 소비자의 브라우저 버전과 종류에 맞춰 정상적으로 동작할 수 있도록 추가로 코드를 작성해야하는 문제

  • caniuse.com 사이트를 통해 점유율 확인이 가능



반응형 웹

브라우저의 가로 넓이에 '반응'하여 구성 요소가 변하는 기술(사용자의 기기에 맞춰 자동 변형)

  • 비교적 많은 코드가 필요하고 작업시간이 오래걸리며 비용이 더 많이 들어감



하이브리드 애플리케이션

웹+애플리케이션 혼합 (API 문서를 통해 웹과 앱을 구별 가능)

  • 각 기술은 다른 기술의 장점을 흡수하고, 스스로 가진 단점을 보완하는 방식으로 발전함





2. 데이터베이스와 이미지 처리 (7장)



데이터란?

데이터의 무결성

데이터는 단 1%의 결점도 없어야 한다.
그렇기 때문에 점검이 필요한 경우 시간을 잡아두고 안전하게 작업하도록 함



관계형 데이터 베이스

테이블(table): 엑셀의 sheet 와 유사
데이터 베이스(database)/스키마(schema): 엑셀 파일 자체로 비유 가능

  • RDBMS(관계형 데이터 베이스 관리 시스템):
    관계형 데이터 베이스 관리 시스템.
    MS, SQL, Oracle DB, MySQL, MariaDB 등이 있음



데이터 관리

  • 데이터는 보조기억장치에 저장된다.
  • CPU, 메모리가 있으면 데이터베이스 관리 시스템 실행 가능
    ≒ 클라이언트, 서버 모두 데이터 저장 가능
  • 데이터의 위치를 알기 위해서는 API 문서를 확인하면 가장 확실하다.
  • 로컬=내부DB=네이티브=클라/클라이언트=프론트=프론트 엔드
  • 서버=API=DB=백/백 엔드

  • 데이터의 확인을 위해 정보, 이미지의 성격을 확인하여야 함

  • 클라이언트에 이미지를 놓으면 이미지를 다운받지 않아도 된다. 하지만 이미지를 바꾸기 위해서느 애플리케이션을 업데이트 해야함.

  • 이미지가 바뀌었을 때 서비스에 영향을 주다면 서버에서 가져와야함

  • 동일하게 API 문서를 확인하는 것이 가장 정확하다.





3. 프레임워크와 라이브러리 (8장)

프레임워크, 라이브러리

프레임워크: 개발자들이 사용할 수 있도록 만들어 놓은 코드. 한 프로젝트에서 프레임 워크는 하나마 사용 가능.

라이브러리: 프레임워크보다 작은 개념.

  • 프레임워크와 라이브러리는 만든 주체가 모두 다르기 때문에 반드시 설명을 보고 사용할 것(사용료, 출처 기재 등의 문제)



기기별 프레임 워크

  • 애플: 코코아(Cocoa) 프레임워크
    (맥 OS: Appkit, iOS, tvOS: Ulkit)
  • 구글: Android 프레임워크
  • 웹: angular.js, Vue.js, react.js



프로그래밍 언어별 프레임워크

  • 자바: spring
  • 파이썬: 장고(Django)
  • 루비: Rails
  • JS: 익스프레스(express.js)





4. 협업, 소스관리, 디자인 & 정리 (9장~10장)

깃(Git), 커밋(Commit)

커밋: 깃을 통해 개발자들이 개발 단계별로 '깃발'을 꽂는 행위
커밋로그: 어떤 개발을 했는지 메모하는 것
브랜치(Branch): 새로운 방향의 개발을 추가해야 할 때(기존 브랜치에 영향X).
머지(Merge): 코드를 합치는 기능. 충돌(confict) 시 알림.

  • 깃은 소스 코드의 버전관리 기능을 가짐



원격저장소

  • 깃허브(GitHub), 비트버킷(Bitbucket)






디자이너와 개발자

디자이너, 개발자 간의 갈등을 줄이기 위한 프로그램의 등장.

'스케치, 재플린, XD' 등: 디자이너의 작업 결과물의 수치를 보여줌.
소스코드 추천, 이미지 요소 개발을 위한 형식 다운이 가능함



UI

  • 클라이언트 개발자라면 UI에 지속적으로 관심을 가지고 공부해야한다.
  • 각 회사에서 가이드 라인을 제공함
    (애플: Human Interface Guideline, 구글 Material Design)






용어 정리

  • 네이티브 애플리케이션: 각 운영체제에 맞는 프로그래밍 한 애플리케이션 (예. iOS - 스위프트, Objective-c 등)
  • SQL: 데이터베이스 관리시스템(DBMS)에 데이터를 CRUD하기 위한 언어






reference

최원영, 『비전공자를 위한 이해할 수 있는 IT지식』, T.W.I.G

0개의 댓글