본문 바로가기
공부/일반 IT

[공부] IT 비전공자도 이해하기 쉬운 직장인 코딩 용어 해설 - 2편 -

by Goddoeun 2022. 4. 6.
728x90
반응형

안녕하세요!

 

오늘은 저번 1편에 이어서 2편을 작성해 보았습니다.

깊은 얘기까지는 다루진 않을 것이고, 그냥 간략한 용어와 이해만 도울 목적으로 글을 작성해 보도록 하겠습니다.

 

 

[서버 클라이언트 통신]

 

만약 은행을 서버라고 생각한다면, 고객은 클라이언트일 것입니다.

제 통장 잔고를 확인하고 싶다면, 번호표를 뽑고 입출금 창구에 가서 신분증을 보여주겠죠. 

혹은 인증을 거쳐 모바일 앱으로 잔고를 확인할 수 있을겁니다.

약속해둔 데이터를 가져가야 잔고를 보여줍니다. 규칙이 존재하는 것이죠!

 

웹 서버도 마찬가지로, 은행 창구처럼 여려가지 약속되어있는 창구가 존재합니다.

예를들면, A창구는 ID를 갖고오면 '주문내역'을 알려주고, B창구는 주소를 갖고오면 '음식점'을 알려주며 C창구는 주문번호를 갖고오면 '배달현황'을 알려주는 역할입니다.

요런 A, B, C 창구들의 역할을 API(Application Programming Interface)라고 합니다.

서버에서 미리 만들어둔 기능이자, 클라이언트 개발자 와 서버 개발자가 미리 해둔 약속입니다.

 

API는 서버와 데이터베이스에 대한 출입구 역할,

        애플리케이션과 기기가 원활하게 통신할 수 있도록 하는 역할,

        API는 모든 접속을 표준화하는 역할을 합니다.

 

API 명세서란, API의 이름, 파라미터, 반환 값 등의 구문, 인증 및 인가 방법, 데이터 전달 형식 등 API를 정확하게 호출하고 그 결과를 명확히 해석하는데 필요한 정보들을 일관된 형식으로 기술하는 것을 말합니다.

API 명세서를 작성하면 API의 설계, 개발 및 문서화 과정에서 다음의 이점이 있으므로 서로 다른 클라우드 서비스 간의 API 연동에 있어서 그 필요성이 더 증대되고 있습니다.

API명세서의 예시는 아래와 같으며, 자세한 사항은 아래의 링크에서 확인이 가능합니다.

Link : https://github.com/ChickenPaella/Sloot/wiki/API-%EB%AA%85%EC%84%B8%EC%84%9C

 

 

API의 대표 케이스를 확인해보겠습니다.

https:// movie.naver.com / movie/bi/mi.basic.naver ? code=10016

movie.naver.com -> 서버위치

movie/bi/mi.basic.naver -> API 주소

code=10016 -> 가져가기로 한 데이터

가 되는것 입니다.

 

만일,

"~님 이거 신규 피쳐라 API 하나만 따주세요" 이렇게 말을 한다면 새로운 기능이 나왔으니 창구를 하나 만들어달라라는 뜻이고 명세서도 같이 주면 될겁니다.

"API 개발은 끝났고, 클라이언트는 아직이에요" 이렇게 말을 한다면, 창구는 다 만들었는데 요청하는 쪽이 아직 작업중이다 라는 뜻입니다.

 

OPEN API란, 누구나 요청할 수 있게 만들어 놓은 API라는 뜻입니다. 일반 API는 누구나 요청을 할 수 없게 만듭니다. OPEN API는 공공데이터에서 많이 열어둡니다.

 

 

브라우저, 휴대폰, 가전 어떤형식이던 요청을 하면 다 클라이언트로 봅니다.

서버는 요청을 무조건 받고 데이터를 주는 쪽입니다.

 

요청을 받을때 출입문이 있는데 그것이 API

요청을 잘 받기 위해서 대기하고 있는 것이 웹서버

 

필요에따라 본인이 갖고있던 html, css, js를 줄수도 있고, 데이터를 조회해서 json형식으로 앱에 데이터를 내려줄수도 있습니다.

 

[프레임워크]

 

프로그래밍 언어는 OS에 명령을 내리는 것이라고 1편에서 말을 했습니다!

그런데, 서버를 만드는게 정말 어렵습니다.

그래서 통상 서버를 0부터 만드는 사람들은 거의 없고, 프레임워크라는 것을 이용해서 만듭니다.

프레임워크는 미리 만들어놓은 블록세트라고 생각하시면 편할 것 같습니다.

 

Java로 만든 프레임워크로는 Spring, Node.js로 만든 프레임워크는 Express, Python으로 만든 프레임워크는 Django 등이 있습니다.

 

프레임워크는 기능으로 구성되어있고, 필요한 기능들을 가져다가 쓰는 원리로 사용되게 됩니다.

그래서 Java로 서버를 만들려고 한다면, Java를 잘하는 것도 중요하지만 Spring 프레임워크에 대한 이해도가 얼마나 되느냐가 중요할 것입니다. 쓰고싶은 기능들을 잘 알아야 할테니까요, 왠만하면 유명한 언어를 써서 인터넷에서 정보를 많이 얻습니다.

 

프론트엔드에는 html, css, javascript가 있는데, 요즘은 프론트엔드에도 프레임워크를 사용합니다. 예를 들면, 앵귤러, 뷰, 리액트 등이 있습니다.

이를 사용하게 되면 용량을 조금 더 적게보낸다던제, 페이지에 깜빡거림이 줄어든다든지 등의 이점이 있습니다.

 

<개발 언어 정리>

웹 - HTML, CSS, Javascript..

앱 - 안드로이드(Kotlin), 아이폰(Swift), Flutter, ReactNative..

서버 - Java(Spring), Python(Django, Flask), Node.js(ExpresS), C++, Go, TS...

데이터 분석 - Python..

 

여기까지 2편으로 마치고 다시 3편으로 돌아오겠습니다!

728x90
반응형

댓글