본문 바로가기

전체 글

(80)
헷갈리는 IT용어 이해하기__8. 협업 (feat. git, xd ... ) # 개발자간의 협업 관리 - git - 개발 과정은 복잡하다. 이 복잡한 과정의 히스토리와 각각의 작업 영역을 겹치지 않게 하기위해 깃을 고안되었다. 깃은 다음과 같은 행위들을 거치며 개발 소스들을 관리한다. 1) 커밋 (commit) - 무슨 개발을 했는지 적어주는 메모, 이 커밋들의 내역를 커밋로그(Commit log)라고한다. - 개발 내역 분석및 추적 2) 브랜치(Branch) - '분기','가지'라는뜻으로, 새로운 가지를 뻗는 것을 의미. - 분석 기능과 동시에 진행해야하는 다른 코드들은 브랜치로 따로 관리한다. 각각 서로 다른 곳에서 개발하는 것. - 하나의 프로젝트를 진행할 때 동시에 여러 기능들이 충돌 없이 작업할 수 있다. 3) 머지(Merge) - 각각 브랜치에서 작업한 코드들을 합치는..
헷갈리는 IT용어 이해하기__7. 프레임워크, 라이브러리 #프레임워크? 애플리케이션을 혹은 웹을 더 쉽고 빠르게 개발하기 위해, 고안된 방법이다. IOS, Mac OS, WatchOS 등의 애플의 애플리케이션을 개발하기 위해서는 Swift 혹은 Object-C라는 언어를 사용해야한다. 여기에 애플에서 제공해주는 프레임워크인 코코아(UIkt, Appkit)를 사용하면 애플리케이션을 더 쉽고, 빠르게 만들 수있다. 안드로이드 또한 자바혹은 코틀린 이라는 언어를 사용한다. 그리고 안드로이드 프레임워크를 사용하면 안드로이드에 올라가는 애플리케이션을 더 쉽게 만들 수 있다. 문제는 웹이다. 웬은 특정회사의 소유가 아니다. 그래서 웹 프레임워크 및 라이브러리는 여러 사람이 만든다. 2020 기준, 가장 유명한 웹 프론트엔드 프레임워크는 다음과 같다. Angular.js ..
헷갈리는 IT 용어 이해하기__6. 데이터베이스 #데이터 예를 들어 생각해보자. 쇼핑몰에서는 '회원명', '아이디', '주문 상품 명', '상품 가격' 등이 데이터다. 가만히 살펴보면 이 데이터는 모두 서로 관계가 있는 텍스트. 이렇게 관계가 이어진 텍스트는 관리가 어렵다. 만약 '홍길동'이라는 사람의 '생일'을 수정해야한다면? 그 많은 텍스트 중 이름이 '홍길동'이라는 사람을 찾아서, 그의 '생일'을 수정해야하는데, 만약에 동명이인이있다면, 그에 따른 코드도 따로 짜서 관리해야하고.. 여간 복잡한게 아니다. 이렇게 복잡하게 관리될 데이터는 기본적으로 단 1%의 결점도 없어야 한다. 이러한 점을 데이터의 무결성이라고 한다. 그래서 이렇게 복잡한 데이터를 완벽하게 관리하는 것은 힘들다. 이런 머리아픈 문제를 해결하기 위해 고안된 방법 중 하나가 '관계형..
헷갈리는 IT 용어 이해하기__5. 웹 이해하기 #웹의 구성요소 웹은 기본적으로 3가지로 구성되어있다. HTML, CSS, javascript 1) HTML(Hyper Text Markup Language) '유럽 입자 물리 연구소(CERN)'에서 일하던 '팀 버너스리'에 가 만듦. 운영체제나 프로그램에 상관 없이 일정한 형식이 동일하게 보이도록 하는 새로운 개념이 필요성을 느끼고, 제안한 문서. 브라우저만 있면 운영체제 상관없이모두 웹 사이트에서 동일한 정보를 볼 수있다! 참고로, HTML은 프로그래밍 언어가 아니다. HTML은 컴퓨터에게 특정 일을 시킬 수 있는 언어가 아닌, 브라우저가 볼 수 있는 문서를 적는 언어다. 2) CSS HTML문서에 디자인을 입힐 수 있는 코드. HTML문서에 컬러도 넣고, 예쁘게 만들어주는 기능을 한다. HTML과 ..
헷갈리는 IT 용어 이해하기__4. API/JSON #API 소프트웨어가 다른 소프트웨어의 기능을 쓰기 위해 중간에 필요한 체계입니다. 쉽게 말해, 요청을 구분할 수있도록 하는 '체계', API는 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계이다. API는 서버개발자가 개발하고, 클라이언트는 그API를 사용합니다. #클라이언트 관점에서 생각 클라이언트는 API에 요청한다. 클라이언트는 보통 CURD에 입각해서 요청한다. #CRUD 클라이언트에서 데이터를 다룰 때 기준이 되는 요청이다. ex) 클라에서 수행해야하는 요청이 타임라인에 사진을 올리는 요청이고, 이것을 CRUD에 입각해서 풀어낸다면.. Creat : 타임라인에 사진을 '올리는'요청 Read : 타임라인에 사진을 '불러오는'요청 Update : '바꾸..
헷갈리는 IT 용어 이해하기__3. CI/CD # 도입 배경 - 요즘같이 빠르게 진화하고 변화하는 시대에 어떻게 하면 시장과 고객의 요구에 빠르게 반응해서 제품을 출시, 업데이트 할것인가는 큰 과제이다. 바로 이것을 위해 세계적으로 많은 기업들이 CI/CD를 도입했다. # 간단히 어플리케이션 개발부터 배포까지 이 모든 단계들을 자동화를 통해서 조금 더 효율적이고 빠르게 사용자에게 빈번히 배포할 수 잇도록 만드는 것을 말한다. # CI란? - Continuous Intrgration (지속적인 통합) 의 약자. - 버그수정이나 새로 만드는 기능들이 메인 리파지토리에 주기적으로 빌드되고, 테스트 되어서 머지 되는 것을 의미한다. - 1991년 Grady Booch에 의해 사용되어지다가, 후일 Extreme Programming 개발방법론에 채택되었다. ..
헷갈리는 IT 용어 이해하기__2. JAVA니가 먼데? 오늘은 그 유명한 자바가 왜 그렇게 유명해졌는지, 이야기 하려고 한다. 바로 JVM(Java Vertual Machine)개념 때문이다. 과거에는 운영체제의 종류가 훨씬 다양했다. 그래서 개발자가 개발해야하는 프로그래밍 언어도 굉장히 많았다. 운영체제 별로 언어가 다르면 무슨 문제가 있을까? 프로그램의 유지보수가 너무 비효율적이었다. 각기 다른 언어를 모두 배운다고 해도 운영체제 별로 언어가 다르니, 버그를 수정하거나 새로운 기능를 추가할때면 해야할 일이 너무 많았다. 10개의 운영체제가 있다면 같은 작업을 10번씩 해야하니까! 이문제를 자바가 해결한다. 바로 JVM을 이용해서! 자바를 만든 팀은 각 운영체제 위에 JVM(Java Vertual Machine) 이라는 소프트웨어를 만들었다. JVM위에서 ..
헷갈리는 IT 용어 이해하기__1. 클라이언트와 서버 서버/클라이언트, 프론트/백? 눈치껏 그냥저냥 쓰고 있기는 한데, IT용어는 항상 헷갈린다. 이번기회에 정확하게 이해하고자 정리해둔다. # 서버와 클라이언트 / 프론트와 백 서버와 클라이언트의 관계는 가게의 손님(클라이언트)과 종업원(서버)의 관계라고 생각하면 이해하기 쉽다. 손님(클라이언트)와 같이 계속해서 서비스를 요청하는 컴퓨터를 클라이언트, 종업원(서버)와 같이 요청하는 서비스를 제공하는 컴퓨터를 서버 라고 한다. 그러니까 서비스를 사용하는 사용자들이 소유한 모든 컴퓨터를 클라이언트라고 할수있다. 우리가 사용하는 스마트폰이나 컴퓨터도 다 서비스를 요청하는 클라이언트다. 한편, 고객의 입장에서 보면 클라이언트 컴퓨터를 직업 볼 수 있고, 만질 수 있다. 그래서 고개가 앞에 있는 이 클라이언트 컴퓨터..