본문 바로가기

전체 글

(81)
[Javascript] Class란 무엇인가 Javascript(이하 JS)는 다른 객체지향 언어와는 차이점이 있지만 프로토타입 기반의 객체지향 언어이며, 강력한 객체지향 프로그래밍 능력을 갖고 있는 언어이다. 프로토타입 기반의 객체지형 언어란 클래스가 필요 없는 객체지향 프로그래밍 언어를 프로토타입 기반의 객체지향 언어라고 하며 JS는 ES5까지는 클래스 선언을 하지 않고 생성자 함수와 프로토타입 선언을 통해 객체지향의 상속을 구현할 수 있었다. 하지만 ES6이후 클래스 문법이 도입되면서 클래스를 선언하여 사용할 수 있게 되었고, 기존 Java나 C#과 같은 클래스 기반 객체지향 프로그래밍 언어에 익숙한 개발자들은 빠르게 학습 할 수 있게 되었다. JS에서 사용하는 클래스는 기존(ES5)의 프로토타입 기반 패턴을 클래스 기반 패턴 처럼 사용하는 ..
[나는 리뷰어다] 업무에 바로 쓰는 SQL 튜닝 이 글은 2021년 7월 한빛미디어에서 진행하는 프로그램에 참여하게 되어 책을 제공받아 글을 작성하였습니다. 컴퓨터공학을 전공했거나 개발자를 꿈꾸는 사람이라면 한 번쯤은 SQL을 들어봤을 것이다. SQL은 RDBMS(관계형 데이터베이스 관리 시스템)의 데이터를 관리하기 위해 설계된 프로그래밍 언어로, DB에 저장된 자료를 검색하고 관리하며, Table을 생성 및 수정할 수 있다. 그 과정에서 개발자는 Table을 어떻게 설계하고, Query을 사용하면서 시스템 성능까지도 고민을 하게 된다. 실제로 사소한 설계에서부터 어떻게 설계하고 사용하냐에 따라 시스템 성능에 큰 영향이 끼치며 속도가 천차만별로 바뀌게 된다. 오늘은 다양한 RDBMS 중 오픈소스로 공개되어 있으며, 무료 RDMBS로 유명한 MySQL/..
[나는 리뷰어다] NGINX 쿡북 서평 이 글은 2021년 6월 한빛미디어에서 진행하는 프로그램에 참여하게 되어 책을 제공받아 글을 작성하였습니다. 서버 개발자라면 NGINX(혹은 엔진엑스)을 들어본 적이 있을 것이다. NGINX는 웹 서버 SW 중 하나로 아파치 다음으로 가장 많이 사용되는 웹 서버 SW 중 하나이다. 2004년 10월 발표되어 BSD허가서 라이선스를 따르며 요청에 응답하기 위해 비동기 구조를 가진다는 특징을 가진다. 이는 가장 많이 사용하는 아파치의 스레드/프로세스 기반의 구조와는 대조적인 구조이다. 오늘은 NGINX에 대한 책인 NGINX쿡북을 읽고 서평을 작성하고자 한다. 책 소개 2021년 6월 기준 교보문고에 NGINX로 검색한 경우 2권의 책(NGINX 쿡북, Nginx HTTP 서버)이 나오는 것을 확인할 수 있..
[나는 리뷰어다] Web Development with Node & Express 한권으로 끝내는 Node & Express 2판 서평 이 글은 2021년 5월 한빛미디어에서 진행하는 프로그램에 참여하게 되어 책을 제공받아 글을 작성하였습니다. 2021년, 유명 게임 3사 중 하나인 N회사를 시작으로 신입 개발자 연봉 5천만 원을 내세우며 많은 IT회사에서 개발자를 영입하기 위해 고액의 연봉은 물론 스톡옵션을 포함하여 채용공고를 올리고 있다. 그러면서 자연스럽게 개발자라는 직업에 관심도가 증가하였고, 전직을 하는 사람들 또한 많이 증가하였다고 한다. 심지어 코딩 학원들까지 Youtube을 포함하여 '3개월 만에 개발자 되는 방법'을 내세워 홍보를 하고 있다. 특히, 최근 들어 주변 비전공자 친구들 또한 개발자가 되기 위해서 어떤 언어를 시작해야 하냐고 질문을 많이 하고 있다. 대부분의 사람들은 Python과 C를 추천을 한다. 하지만 나..
[Python] 파이썬에서 사용하는 input()과 sys.stdin.readline()의 차이점은 무엇인가? 최근 백준 알고리즘과 프로그래머스를 통해 코딩 테스트(일명 코테) 준비를 위해 알고리즘 문제을 풀이하고 있다. 나는 주로 파이썬이 다른 언어보다 빠르고 간결하게 작성할 수 있고, 파이썬의 강력한 라이브러리들 때문에 파이썬을 사용하여 문제를 풀이하는데 얼마 전 sys.stdin.readline()을 사용하여 문제 풀이를 하는 글을 보고 이 두 개의 차이점이 궁금해졌다. 오늘은 파이썬에서 값을 입력할 때 사용하는 input()과 sys.stdin.readline()의 차이점에 대해 글을 쓰고 비교해보려고 한다. 사용법 우선 input()의 사용법은 다음과 같다. 아래 코드는 a의 값을 정수형으로 입력받기 위해 int(input())을 사용하여 입력을 받는다. a = int(input()) print(a) s..
[나는 리뷰어다] DENO 디노 첫걸음 이 글은 2021년 4월 한빛미디어에서 진행하는 프로그램에 참여하게 되어 책을 제공받아 글을 작성하였습니다. Deno는 JS Fest 2019 Spring 컨퍼런스에서 공식 발표 이후 2020년 5월 13일 1.0버전을 공식적으로 출시로써 기존 Node.js 개발자들을 놀라게 하였다. Deno는 Node.js에서 제기 되었던 npm의 중앙 배포 방식 문제와 보안 문제등을 개선하였다. 이 책은 Deno을 사용하여 서버을 구현하는 방법이 아닌 Deno에 대해 소개하고 Deno을 사용하여 간단한 채팅 서버 구현 예제을 통해 직접 체험을 해 볼 수 있다. 목차 CHAPTER 01 완벽한 디노 CHAPTER 02 타입스크립트 소개 CHAPTER 03 안전한 생활 CHAPTER 04 npm 없는 세상 CHAPTER..
[Spring] Swagger2을 사용하여 API 문서 자동화 하기 오늘은 gradle을 사용한 Spring 환경에서 Swagger을 사용하여 API문서를 자동화하는 방법에 대해 작성하고자 한다. Swagger란? Swagger는 Rest API서버 구현 시 사용하는 API 정보를 자동으로 문서화해주는 오픈소스 프레임워크이다. Swagger을 사용하는 이유? Swagger을 사용하는 이유는 다음과 같다. 1. 적용하기 쉽다. - 코드 몇줄을 추가하여 Swagger을 사용 할 수 있다. 2. 테스트를 할 수 있는 UI을 제공해준다. - API을 테스트 할 때 주로 Postman을 사용하여 테스트를 할 수 있지만 Swagger의 경우 GUI로 테스트를 할 수 있는 환경을 제공한다. 3. 다양한 프레임워크를 지원하여 (Spring, Django, Node.js 등등) - AP..
[백준 알고리즘] 9095번 1,2,3 더하기 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 3 4 7 10 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 7 44 274 풀이 이 문제는 1부터 입력한 n값까지 1, 2, 3만을 사용하여 구하는 입력한 n값을 구하는 방법의 개수를 구해야 한다. 처음 문제를 보고 ..