본문 바로가기
반응형

전체글504

객체지향 (Object Oriented) 디자인 (Design) 여기서 이야기하는 디자인은 코드 설계와 동일하게 봐도 무방하다. 디자인이 왜 중요한가? 요즘의 웹 애플리케이션 개발에서는 디자인에 대한 지식이 없더라도, 원하는 바대로 작동하는 웹 애플리케이션을 만들 수 있다. 특히나 최근의 언어들은 문법이 너무나 친절하여 자신의 생각을 순차적으로 정리만 할 수 있다면 누구나 원하는 웹 애플리케이션을 만들 수 있다. 작은 규모의 웹 애플리케이션에서는 이렇게 디자인을 전혀 고려하지 않고, 기능 구현에만 신경써도 문제는 없다. 아니, 아예 좋지 못한 디자인이라해도 문제가 되지 않는다. 객체간의 복잡한 관계, 계층화 되지 않은 구조 등 모듈화가 전혀 없어도 개발자의 머릿속에 모든 것들을 담아두고 개발을 할 수 있기 때문이다. 반대로 얘기하면 특정 누군가만 손댈수 있고, 그 사.. 2021. 8. 13.
(AWS Aurora) PostgreSQL에서 Lock 쿼리 확인하고 원인 종료하기 RDBMS를 사용하다보면 Lock 쿼리를 종종 만나게 되는데요. (AWS Aurora) PostgreSQL에서는 어떻게 Lock 쿼리를 모니터링하고, 처리하는지 알아보겠습니다. 기존의 온프레미스 환경에 익숙하시다면 그 방식을 그대로 선택하시면 되고, 여기서는 AWS Aurora 환경을 기반으로 진행합니다. 1. 성능 개선 도우미 설정 AWS RDS를 사용하면 성능 개선 도우미를 통한 모니터링을 지원 받을 수 있는데요. 아래와 같이 처음 RDS 생성시 혹은 수정을 통해 설정이 가능합니다. 이렇게 성능 개선 도우미를 활성화시키면 성능과 관련된 여러가지 지표들을 손쉽게 모니터링할 수 있습니다. (이번에 이야기할 Lock 쿼리 역시 성능 개선 도우미를 통해 확인이 가능하기 때문에, 이를 기반으로 설명할 예정입니.. 2021. 8. 13.
Amazon Aurora PostgreSQL 에서 pg_bigm 모듈사용하기 2021.06.17 드디어 Amazon Aurora PostgreSQL 에서 pg_bigm을 지원하게 되었습니다. release notes 기존까지는 Aurora가 11.9 / 12.4 까지만 지원해서 pg_bigm 을 쓰려면 PostgreSQL Amazon RDS 를 사용해야만 했는데요. Aurora PostgreSQL 버전이 업데이트 되면서 (11.11 / 12.6 / 13.2) 가 드디어 Aurora에서도 pg_bigm 를 쓸 수 있게 되었습니다. 그래 이번 시간에는 Amazon Aurora PostgreSQL 에서의 pg_bigm에 대해서 소개드리겠습니다. 1. 지원 대상 업데이트가 되었다고해서 모든 Aurora PostgreSQL에서 pg_bigm을 사용할 수 있는것은 아닙니다. 아래 Postg.. 2021. 8. 8.
IntelliJ & Webstorm import시 double quotes 대신에 single quotes 기본값으로 사용하기 IntelliJ나 Webstorm을 통해 JS / TS를 개발하다보면 import 구문에서 " 로 인해 불편할때가 많은데요. 이를테면 팀 컨벤션으로 import를 Single Quotes 로 해놓은 경우에는 자동 import 를 통해 "로 import 되면 매번 수동으로 Single Quotes 로 바꿔야만 합니다. 1. Auto Import 하는법 먼저 Jetbrains IDE의 Auto Import 는 다음과 같이 사용할 수 있는데요. 아래와 같이 Import되지 않는 클래스나 function에 포커스를 두고, 단축키를 통해 import를 수행합니다. option + Enter: 제안 목록 보기 option + shift + Enter: 전체 full import 여기서 단일 import인 optio.. 2021. 8. 6.
Public / Private 인터페이스 여기서의 인터페이스란 class, interface, abstract class 등에서 이야기하는 interface 가 아니다. 서로 다른 객체간에 어떤 것들을 사용할 수 있을지에 대한 명세를 이야기한다. Method, Function 등이 모두 포함된다. (위 2개 그림은 모두 동일한 원 (클래스)를 가지고 있으며, 화살표 (의존)만 다르다.) 똑같은 클래스들을 가지고, 누구는 첫번째처럼 얼기설기 얽혀있는 구조로 모든 객체가 서로 연결된 구조를 만들고, 누구는 두번째처럼 각 클래스들이 전달 하는 메세지와 관계가 명확하게 드러내도록 만든다. 이렇게 차이 나는 이유는 클래스가 하는 일에만 집중하고, 무엇을 드러내고, 무엇을 숨길지에 대해 전혀 고려하지 않았기 때문이다. 첫번째는 이를 전혀 고려하지 않아서 .. 2021. 7. 28.
2. Docker Compose로 Nodejs 개발/배포환경 구성하기 - Docker Compose로 개선하기 앞서 진행된 과정 을 통해 Docker를 통한 독립적인 환경의 장점은 알게 되었지만, 반면에 직접 하나하나 CLI를 입력하여 Docker를 수행하는것의 불편함도 알게 되었습니다. 이런 불편함을 겪은건 비단 저희만 그런것은 아니겠죠? 이미 이런 불편함을 해결 하기 위해 도커 컴포즈가 출시 되었습니다. 도커 컴포즈는 여러 Docker 애플리케이션을 정의하고 실행하기 위한 도구입니다. 이를 활용하면 그동안 저희가 수행했던 CLI 명령어 옵션이나 컨테이너 간 실행 순서등을 파일로서 관리할 수 있게 됩니다. 이 파일로 관리한다는 점이 가지는 또 하나의 장점은, 바로 버전 관리가 된다는 것인데요. 도커 컴포즈를 구성하는 docker-compose.yml 파일에 작성된 내용은 프로젝트 Git으로 관리되고 있어, 언제.. 2021. 7. 22.

728x90
반응형