인덱스 설계 입문 - MySQL
이번 포스팅은 인덱스 설계에 필요한 밑바탕 지식을 습득하는 걸 목적으로 한다. 이 글에서 별도로 RDBMS를 통틀어 지칭하거나 특정 RDBMS 종류를 언급하지 않으면 모두 MySQL를 지칭하는 것이라 생각하면 된다. 1. 인덱스를 사용해야 하는 이유 RDBMS는 데이터를 저장하고 조회하기 위해 사용하는 소프트웨어이다. 이런 RDBMS는 쇼핑몰이나 ...
이번 포스팅은 인덱스 설계에 필요한 밑바탕 지식을 습득하는 걸 목적으로 한다. 이 글에서 별도로 RDBMS를 통틀어 지칭하거나 특정 RDBMS 종류를 언급하지 않으면 모두 MySQL를 지칭하는 것이라 생각하면 된다. 1. 인덱스를 사용해야 하는 이유 RDBMS는 데이터를 저장하고 조회하기 위해 사용하는 소프트웨어이다. 이런 RDBMS는 쇼핑몰이나 ...
최근 Don’t use booleans라는 글을 읽고, 저자와 같은 고민을 해볼 필요가 있다는 생각이 들어 작성하게 되었다. 해당 글에서는 함수 파라미터에 boolean을 사용하는 것이 코드 가독성과 유지보수성에 얼마나 부정적인 영향을 미치는지 이야기하며 열거형을 대안으로 제안하고 있다. 나도 boolean 파라미터를 사용할 때 유사한 문제에 직면할...

지난 1월, 다른 개발자들과 네트워킹하는 기회를 얻으려 참여한 F-Lab의 Dev Club에서 열린 네트워킹 행사가 있었다. 나는 Dev Club에 합류한 이유가 네트워킹 기회를 얻고자 함이었기 때문에 참여하게 되었다. 막 바빠지던 시기라 참여할지 말지 고민했었는데, 상상했던 것보다 훨씬 다양한 개발자 분들과 좋은 네트워킹을 할 수 있었다. ...
1. 문제의 시작 기존 모놀리스 프로젝트에 MSA 아키텍처를 도입하던 중, Config Repository와 Config Server를 띄운 후에 Config Client의 연결성을 구성하는 과정에서 아래와 같은 에러를 컴파일러가 건네주었다. Could not find org.springframework.cloud:spring-cloud-start...
이 포스팅에서는 RDBMS를 기반으로 설명하고 있기 때문에, NoSQL를 사용하는 API 개발에 대한 참고는 되지 못할 것이라는 점을 밝혀둔다. 1. REST API - CRUD 오늘날에 API는 컨트롤러 계층에서 데이터를 제공하는 방식으로 개발되어지고 있다. 그런데, 컨트롤러에서 데이터를 제공할 때 유의해야 하는 게 있다. 그건 바로 데이터를...
백엔드 개발은 오랜 시간을 거쳐 발전해왔다. 개발하면서 반복되는 일은 자동화하고 유지보수에 용이하도록 추상화해오면서 발전된 지금의 기술은 개발자의 많은 고민을 덜어준다. 그렇기에 내가 쓰고 있는 기능들이 어떤 방식으로 편리함을 제공하는지 몰라도 개발을 할 수 있다. 하지만 그런 이해의 부재는 좋은 도구를 100% 활용하지 못하게 만든다. 토비...
웹 통신에서 매번 빼놓지 않고 보이는 HTTP는 꽤나 중요해보인다. 웹 서핑할때 주소 앞에 http를 적었던 게 기억나기도 하고, 모든 웹 주소마다 들어가는걸 보면 호기심이 생겨나기도 한다. 이 녀석이 뭔지 알아보자. HTTP HyperText Transfer Protocol HTTP는 HyperText Transfer Protocol이다...
우리가 웹 서핑을 할 때 어떤 처리가 뒤에서 이루어지는 걸까? 뭔지는 모르겠지만 URL 주소가 자꾸 바뀌네? 저게 이 웹 화면을 매핑해주는 거구나 생각하고 말았을 것이다. 어떤 원리로 우리가 웹 서핑을 할 수 있는지 알아보자. 먼저, URL에 어떤 정보가 담겨있어서 웹 화면을 매핑해줄 수 있는 것인지 부터 알아볼 것이다. 1. URI URL은 ...
웹 개발에서 프론트 계열과 백엔드 계열을 막론하고 필수적으로 다뤄져야하는 기본이 있다면 그건 HTML, CSS 그리고 자바스크립트입니다. 이 포스팅은 웹 표준에 대한 내용 중 깜빡하기 쉽고 놓쳐버릴 수 있지만 다시 살펴보면 좋을 요소들을 정리해 챙길 수 있도록 하는 목표를 갖고 있습니다. CSS 스타일의 형식 CSS 스타일의 형식은 다음과 같습니다...
Git 을 사용하면서 version 관리 명령을 취소시키는 방법들을 알아보자. 1. git add 취소(파일 상태를 Unstaged로 변경하기) 아래와 같이 실수로 git add * 명령을 사용해 모든 파일을 Staging Area에 넣은 경우, 다시 파일을 빼고 싶을 수 있다. // 모든 파일이 Staged 상태로 바뀐다. $ git add *...