전체 글 58

테크레터 3편. 누가 Restful API 소리를 내었는가

이번 주제는 Restful API입니다. API는 많이 들어보셨을텐데 Restful이라는 단어는 생소하실 것 같네요. 💡들어가기전에 API란? : 일반적으로 웹 서비스를 개발할때, 프론트엔드와 백엔드 개발자간 정해놓은 통신 규칙에 따라 요청&응답이 이뤄질수 있도록 설계해야합니다. 이때 서로 통신할 수 있도록 하는 규칙 집합을 API 라고 합니다. 즉, 클라이언트와 리소스(DB) 간 게이트웨이 역할을 한다고 이해하시면 됩니다. 1. RESTful하다는 건 무슨 뜻인가? REST(Representational State Transfer) 기반의 아키텍처 스타일을 고수하여 웹 서비스 개발하는 방식입니다. 일반적으로 아래 조건을 만족하면서 엄격하게 설계된 API를 RESTful API라고 말합니다. *이번 게시..

테크레터 2023.12.22

테크레터 3편. 컴파일러와 인터프리터의 차이는 무엇인가요?

오늘은 기본적인 용어에 대해서 간략하게 살펴보도록 하겠습니다. 1. 컴파일러 (위키백과에 따르면) 컴파일은 고급 프로그래밍 언어를 실행 프로그램으로 만들기 위해 저급 프로그래밍 언어로 변환하는 과정을 의미합니다. 컴파일러는 개발자가 작성한 소스 코드를 컴퓨터가 수행하기 위한 코드로 변환해주는 일종의 툴 입니다. 대표적으로 자바 컴파일러를 예로 들 수 있습니다. 이때 고급/저급 언어는 아래와 같이 이해하시면 됩니다. 고급언어 : 사람이 이해하고 작성하기 쉽게 만들어진 언어로, 개발자들의 소스 코드가 이에 해당되고요. (C/C++언어) 저급언어 : 컴퓨터가 이해하고 실제 동작을 수행하기 위한 언어로, 작성된 소스 코드가 변환되어야 합니다. (0, 1 조합의 기계어) 특징으로는 컴파일 단계를 반드시 거쳐야하며..

테크레터 2023.12.19

아스키 코드에서 UTF-8까지

오늘은 아스키 코드에 대해 기본적인 지식만 체크하고 넘어갈게요. . . 1. 데이터 컴퓨터가 이해하는 정보를 `데이터`라고 합니다. 그리고 컴퓨터는 0과 1만 이해할 수 있습니다. 이진법을 활용하면 컴퓨터 데이터를 이해할 수 있겠네요. 그렇다면 우리가 사용하는 0과 1 이외의 수많은 숫자와 문자는 어떻게 사용 가능했던 것일까요? 바로 0과 1로 숫자와 문자를 표현할 수 있기 때문입니다. 우리가 텍스트(숫자와 문자 조합)를 입력하면 컴퓨터가 이해할 수 있는 변환하는 과정을 인코딩 이라고 하고, 반대로 컴퓨터만 이해할 수 있는 숫자에서 사람이 이해할 수 있는 문자로 변환하는 과정을 디코딩 이라고 합니다. 2. 아스키 코드 아스키코드는 영문 알파벳을 사용하는 대표적인 문자 인코딩입니다. 아스키는 *패리티 비트..

알쓸신잡 2023.12.18

리팩토링이 왜 필요한가?

내가 제대로 이해했는가를 알고 싶으면 자신의 생각을 글로 쉽게 풀어서 설명할 줄 알아야 하죠. 그런 맥락에서 오늘은 면접 질문 중 하나인 리팩토링에 대해 정리해볼게요. 1. 리팩토링에 대해 알고 계신지요? 서비스의 비지니스 기능(로직)이 확장될때, 기존 코드의 변경범위를 최소화하기 위해 코드를 재구성하는 단계입니다. 백엔드 기준에서 살펴보면, 클라이언트 코드에 영향성을 주지 않는 범위에서 서버쪽 코드만을 변경해서 서비스를 추가 혹은 변경함을 포함하고 있습니다. 2. 목적 앞서 말씀 드린 기능 확장 뿐만 아니라 가독성, 유지보수 측면에서 리팩토링은 필수죠. 아래와 같이 정리해봤어요. 의존관계와 복잡도를 고려한 효율화 작업 (성능과 직결) 유지보수 유리하며 코드 재사용을 높이기 위함 클린 코드를 지향하며 가..

Spring 2023.12.14

테크레터 2편. Twelve Factor App 들어본 사람?!🖐️

오늘의 주제는 Twelve Factor App(SaaS앱을 구축하기 위한 방법론 중 하나)입니다. (원론적인 이야기로 노잼일 수 있겠네요^^;;) 요즘은 XaaS형태로 클라우드 기반의 서비스가 많이 개발되고 보편화되었지만 과거엔 어떻게 시작했을지(태동기)가 궁금해지더라고요. 개발 지식을 쌓는데 도움이 되길 바라면서 테크레터 2편 시작해볼게요. 우선 XaaS부터 가볍게 익히시죠. 1. XaaS : 클라우드 등 네트워크 기술을 기반으로 서비스 제공 기본 개념이지만,Twelve Factor App을 통해 현재 완성된 서비스들입니다. 최종 산출물에 해당되는 부분! 종류 : 1) IaaS(infra) : AWS, Microsoft Azure, Google Cloud ㄴ 디지털 서비스 구현에 필요한 네트워크 자원을..

테크레터 2023.12.14