본문 바로가기
비개발자의 개발 지식 스터디/개발자와 커뮤니케이션

IT 용어

by 열정주니어 2023. 7. 24.
반응형

인프라

  • 인프라는 폭넓은 의미로 프로그램을 실행시키기 위한 환경을 의미
    • 프로그램을 실행시키기 위해선 하드웨어, 운영체제, 네트워크 등의 인프라(환경)이 필요.
    • 일반적으로 인프라 환경을 클라우드에서 많이 제공

 

코딩 컨벤션

  • 코드를 관리하고 읽기 쉽게 만들기 위한 규칙

  • 코딩은 어떻게 짜냐에 따라 형태가 다양할 수 있음
    • 위 이미지의 1번, 2번 컨벤션은 모두 똑같은 기능을 하지만 들여쓰기를 어떻게 하고 { 를 어떻게 배치하냐는 등은 개발자에 따라 다름
    • 개발자들이 점점 늘어날수록 코드의 통일성이 떨어지게 되므로 코딩컨벤션을 통해 코드를 어떤 형식으로 짜야하는지 정리함
    • 실제로 코딩 컨벤션은 위 예시처럼 뛰어쓰기, 들여쓰기 등의 짧은 코드의 마이너한 규칙부터 시작해서, 파일을 어떻게 배치하고 역할을 나눌지 등도 해당됨
  • 린트(Lint): 코딩 컨벤션을 지키는데 도움을 주는 프로그램 툴
    • 코딩 컨벤션을 미리 설정해두면 개발자들이 코드를 짤 때 해당 컨벤션에 맞게 코드를 짜도록 도와줌

 

레거시 코드

  • 개발자들은 현재 가장 나은 방향으로 코드를 짜지만 시간이 지나면서 개발 트렌드가 변화하거나 회사에서 새로운 방식으로 코드를 짜게 되면 이전에 짰던 코드는 구식의 코드인 레거시 코드가 됨
    • 실제로 에러가 나는 코드는 아니지만 비효율적이고 가독성이 떨어지는 코드일 수 있음
    • 이때 이 코드들을 현재 목적과 방향에 맞게 수정하는 것을 리팩토링한다고 함
  • IT 회사에서는 현재 새로운 기능을 위해서 코드를 짜야하는 동시에, 기존에 있는 레거시 코드들을 어떻게 새로운 코드로 바꿔야 할지를 고민함

 

리팩토링

  • 코드를 현재 방향에 맞게 코드를 새로 짜는 것을 의미
    • 과거 코딩 컨벤션 사용, 현재 트렌드와 맞지 않은 라이브러리 사용 등의 과거 레거시 코드를 현재 방향에 맞게 수정 하는 것을 뜻함
    • 리팩토링을 하는 코드들은 외부에서 봤을 때는 큰 문제가 없지만 동작이 제대로 되지 않는다는 것을 의미함
      • 시간이 지나면서 점점 수정하기 어렵고, 코드를 몇줄 바꾸려고 해도 쉽게 고치지 못하는 사태가 발생함

 

디버깅

  • 개발된 코드에서 문제를 찾는 전체 과정을 의미
    • 코딩을 하다보면 에러(버그)가 나는 경우가 많고, 어떤 코드가 문제가 있는지 확인을 하고 수정해야함
    • 리팩토링이 코드를 현재 목적과 트렌드에 맞게 수정하는게 주목적이라면 디버깅은 있어서는 안될 오류들을 발견해서 수정하는 것이 주목적

 

의존성

  • 개발된 코드들이 얼마나 서로 의존하고 있는지를 의미
    • 영어로는 dependency

  • 일반적으로 로그인을 구현하기 위해서는 개발자들이 만든 로그인 라이브러리를 사용하게 되는데 이때, 로그인 동작 코드는 로그인 라이브러리 코드를 꼭 사용하게 되므로 의존성이 굉장히 높게 됨
    • 로그인 라이브러리가 만약에 에러가 나서 동작하지 않는다면로그인 코드는 마찬가지로 문제가 생기게 됨
  • 의존성이 높다는 것은 그만큼 한 쪽이 문제가 생기면 다른 쪽도 문제가 생긴다는 걸 의미
    • 기본적으로 좋은 코드를 짜기 위해서는 의존성이 낮은 방향으로 코드를 짜야함

 

Json

  • 데이터를 서로 주고받을 때 쓰이는 형식
    • 네트워크 통신에서 안에 데이터를 넣어서 보낼 때 데이터를 주고받기 위한 형식이 존재
    • JSON은 대표적으로 많이 쓰이는 데이터 형식
    • 사람이 읽기에 용이하다는 장점
    • JSON 이외에도 유명한 데이터 포맷으로 XML 존재

  • 클라이언트는 API 서버에 정보를 요청하게 되고, 정보를 받아서 처리하기 위해선 API에서 어떤 데이터 형식으로 받게 될지 알고 있어야 함
    • JSON인지 XML인지에 따라 정보를 받은 클라이언트에서 데이터 처리를 다르게 해줘야 하기 때문
  • 요새는 네트워크 통신을 통해 데이터를 주고받을 때 JSON 형식을 가장 많이 사용

 

SQL

  • 데이터베이스에게 명령을 내릴 때 필요한 언어
    • 데이터베이스를 이용한다는 것은 필요한 데이터를 저장 or 삭제, 필요시 조회 등의 행위를 하는 것을 뜻함

  • SQL은 폭넓은 의미로는 데이터베이스를 사용할 때 쓰이는 언어를 의미
    • 하지만 기술적으로 정확한 의미는 관계형 데이터베이스에서 사용되는 프로그래밍 언어
    • 비관계형 데이터베이스(NoSQL)의 경우 해당 프로그램의 자체적인 프로그래밍 언어를 사용함
  • 관계형 데이터베이스가 대중적으로 많이 사용되기 때문에 데이터를 다루는 직군들은 SQL을 알아야할 필요가 있음

 

관계형 데이터베이스 & 비관계형 데이터베이스

  • 기본적으로 데이터베이스의 유형은 크게 관계형 데이터베이스와 비관계형 데이터베이스으로 나뉨

 

관계형 데이터베이스(RDB)

  • 관계형 데이터베이스는 데이터들을 논리적으로 구분
    • 테이블은 각자의 역할을 가지며 동시에 다른 테이블들과 관계를 가지며 연결됨
    • 스키마를 통해 테이블에 어떤 값(필드)이 들어갈지 미리 정의
    • 스키마를 처음에 설계한 후 그 뒤에 테이블에 데이터를 추가

  • 결제 테이블에는 결제 데이터(어떤 유저가 결제했는지, 어떤 상품을 결제했는지 등의 정보)가 들어가는데, 만일 결제 테이블에 유저 데이터, 상품 데이터 등을 전부 담는다면 테이블에 많은 데이터가 들어가게 되고 관리하기 힘듬
  • 관계형 데이터베이스는 유저의 테이블에는 유저들의 정보, 상품 테이블에는 상품들의 정보만 저장하고 결제 테이블에서 어떤 유저와 상품이 연결되어 있는지 간단한 ID를 통해서 연결(관계) 정보를 저장함

 

비관계형 데이터베이스

  • 비관계형 데이터베이스(NOSQL)는 관계형 데이터베이스와 다르게 스키마가 따로 존재하지 않음
    • 형식이 따로 정해져있지 않기에 형식에 얽메이지 않게 자유롭게 데이터를 추가할 수 있음

  • RDB와 다르게 하나의 컬렉션(테이블)에 자유롭게 데이터를 넣을 수 있음
    • 예를 들어 결제 컬렉션의 데이터에 유저 데이터, 상품 데이터들도 자유롭게 넣을 수 있음
  • 장단점 존재
    • 유연하게 데이터를 넣을 수 있다는 장점
    • 데이터들이 많아질 수록 형식이 다르다면 관리하기 어렵다는 단점
  • RDB와 NoSQL은 데이터를 다루는 형식이 다르기에 어떤 데이터들을 주로 다루냐에 따라 선택이 달라짐
    • 실제로 회사에서는 상황에 맞게 두 데이터베이스 형식을 섞어서 사용

 

ERD

  • 테이블간 관련성을 나타내고 동시에 테이블이 무슨 필드를 가지고 있는지를 알려주는 다이어그램
    • 보통 개발자들이 진행한 데이터베이스 모델링을 한눈에 보기 위해 ERD를 만듬

  • 데이터베이스를 설계한다는 것은 보통 테이블을 설계하는 작업으로, 데이터 모델링을 하는 걸 의미
    • 데이터 모델링을 하면 결국 테이블의 개념 정의가 되고 동시에 서로 관련성이 생기게 됨

 

매니지드 서비스

  • 개발자들을 대신해서 서버 관리를 해주는 것
  • 일반적으로 서버를 관리한다는 것은 아래의 작업들이 필요
    • 환경 설정 서버를 실행하면서 필요한 설정(서버를 실행시키기 위한 코드, 연관된 다른 서버와 연결 작업)을 세팅
    • 안정성 서버에게 정보를 요청하는 횟수가 갑자기 느는 등의 갑작스러운 상황에서도 안정적으로 서버가 동작
  • 과거에는 개발자들이 서버를 직접 관리해야 했던 반면, 기술이 발전하면서 이 관리를 직접 해주는 매니지드 서비스가 생겨나기 시작함
    • 개발자는 공수를 다른 곳에 쓸 수 있음
    • 대신 그만큼의 비용을 지출하게 됨
    • 적은 개발자 인력으로 많은 기능들을 제공하기 위해선 매니지드 서비스를 통해 효과적으로 개발하는 방식이 필요
  • 요새는 많은 IT 스타트업에서 매니지드 서비스를 사용

 

크롤링

  • 웹 사이트에 보이는 정보들을 데이터화 하는 것
    • 정보들은 HTML과 CSS로 보여짐
    • 크롤링을 이용하여 HTML에 있는 값, 이미, 텍스트 등을 데이터로 추출

 

노코드 툴

  • 코드 없이 프로그램을 개발하도록 도와주는 툴

  • 기술이 발전하며 개발자가 아니고, 프로그래밍 언어를 사용하지 않더라도 웹, 앱 등을 만들 수 있게 도와주는 기술이 많이 나오고 있음
  • 앱의 완성도는 직접 코드를 작성하는 것보다 떨어지지만 간단한 웹사이트나 간단한 목적의 앱을 만드는 것은 가능

 

Reference

https://www.inflearn.com/course/it-%EA%B0%9C%EB%B0%9C%EC%A7%80%EC%8B%9D#

 

IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z - 인프런 | 강의

본 강의는 멤버십 구독 개념으로 한 번 구매하면 계속 추가되는 수업도 수강할 수 있습니다😃, [사진] 이 강의는!  단순히 개발 용어만을 알려주지 않습니다.IT 회사에서 개발자들이 실제로 하

www.inflearn.com

https://www.grabbing.me/IT-A-to-Z-By-1e1fbc981b7c4c03ac44943085ac8304

 

[IT 개발자와 일할 때 필요한 모든 개발지식] A to Z 자료 모음집 By 그랩

장담하건대 이 내용들만 알고 계시면 IT 개발의 전체적인 흐름은 전부 파악한다고 보셔도 무방합니다.

www.grabbing.me

 

반응형