AWS SAA SAA-C02 자격증 합격 후기에 이어 공부했던 내용들을 간단하게 다시 정리하려고 합니다. 모든 시험 범위를 포함할 수는 없고, 중요하다고 생각하는 내용들 위주로 정리하였습니다. 첫 번째로 가장 기본이 되고 가장 많이 쓰이는 EC2와 Auto Scaling, ELB에 대해서 알아보겠습니다. EC2 (Elastic Compute Cloud) 소개 EC2는 물리 서버의 기능을 가상화했지만 실제 서버와 유사하게 작동하는 가상 컴퓨팅 환경입니다. 기본적으로 스토리지, 메모리, 네트워크 인터페이스, OS가 설치된 기본 드라이브가 제공되어 손쉽게 원하는 작업을 진행할 수 있습니다. 인스턴스 수명 주기 & 요금 인스턴스는 시작한 순간부터 종료될 때까지 다음과 같이 다양한 상태를 가집니다. pending..
AWS SAA 합격 새해 첫 성과로 AWS(Amazon Web Service)에서 증명하는 자격증 중 하나인 AWS certified Solutions Architect Associate를 취득하였습니다. 작년 10월 말부터 3개월 정도 준비하였고, 그 중 최근 1월 한 달은 여기에만 집중하느라 블로그 포스팅도 못했네요. 자격증 이름이 너무 길어서, 보통 AWS SAA라고 부릅니다. 또 기존 시험 버전이었던 C01 버전이 2020년 6월 30일 부로 종료되고, 현재는 C02 버전으로 시험이 제공되고 있습니다. 그래서 정확히는 AWS SAA-C02 라고 표기합니다. 취득하면 다음과 같이 간지나는 인증서도 줍니다. 평소에는 AWS에 대해서 필요한 최소한의 지식만 머릿속에 그때그때 주입해서 사용하다가, 자격증..
나는 오늘도 잔디를 심는다 9개월 째 기덥마을에 귀농한지 어느덧 9개월 차인 박씨 아저씨는 오늘도 한줌의 잔디를 심는다. 어제도 심고, 오늘도 심고, 하루도 빠지지 않고 뭔가를 심는다는데... 2020년 개인 생활을 돌아보면 큰 화두로 남는 한 가지는 바로 일일커밋이다. 3월 중순부터 알음알음 시작해 어느덧 12월이 되었다. 이에 간단한 회고와 함께 그간 심느라 바쁘기만 했던 잔디들을 돌아보는 시간을 가져보려고 한다. 왜 1년도 아니고 8개월 짜리 회고를 하냐고 묻는다면, 아무 이유 없고 그저 만인 회고의 계절, 겨울이 왔기 때문이다. 왜 하고 있나? 일일커밋을 도대체 왜 하고 있는지를 또 묻는다면, 다음과 같은 이유들을 한 번 꼽아보겠다. 슬럼프를 최소화하면서 꾸준히 공부할 수 있다. 지난 날의 행적을..
Logback 안녕하세요~ 이번 포스팅에서는 Logback의 구조와 사용 방법에 대해서 정리해보려고 합니다. 모든 내용을 다 다룰 수는 없지만, 기본적인 구조를 인지하고 있으면 나머지는 필요할 때마다 찾아보면서 적용할 수 있습니다. 특히 Logback은 공식 문서가 꼼꼼하게 되어있는 편이어서, 없는 것 빼고 다 있다는 느낌이 들기도 합니다. 영어지만요 Logback이란? 먼저 Logback이 어떤 것인지 잠깐 짚고 넘어가도록 하겠습니다. 간단히 말해서 java.util.logging, log4j, log4j2를 잇는 자바 로깅 프레임워크인데요. 위 유틸들에 비해서 좋은 성능을 가지고 있으며, 특히 Spring boot에서는 기본 로깅 모듈로 채택하고 있기 때문에 많은 분들이 알게 모르게 Spring bo..
CompletableFuture 학습 테스트 안녕하세요! 이번 포스팅에서는 학습 테스트를 통해 CompletableFuture를 알아보는 시간을 가져보려고 합니다. 모든 코드는 GitHub에 있으니 참고하시면 됩니다. CompletableFuture는 Java에서 대표적으로 비동기 요청을 처리할 때 사용하는 객체인데요. 사용하기에 따라 Async-Blocking, Async-Non-Blocking 하게 사용할 수 있습니다. 제공하는 기능이 꽤 많아서 이 글에서 전부 다루지는 못하지만, 몇 가지 주요 기능을 알고 나면 나머지는 필요에 따라 적용해볼 수 있다고 생각합니다. 동기 / 비동기, Blocking / Non-Blocking 에 대해 감이 잘 안오신다면 이전 포스팅을 참조해 주세요 :) 학습 테스트를..
늘 헷갈리는 비동기 개념 안녕하세요! 이번 포스팅에서는 늘 모두가 제가 헷갈려하는 Sync와 Async, Blocking과 Non-Blocking에 대해 정리해 보려고 합니다. 해당 개념들에 대해 개발자마다 의견도 조금씩 다르고, 이해하는 방식도 다를 수 있는데요. 저도 제가 이해한 방식대로 간단하게 한번 정리해 보겠습니다. 어떤 작업을 요청하는 클라이언트를 A, 작업을 수행해서 결과를 돌려주는 친구를 B라고 전제하고 시작하겠습니다! Sync VS. Async 동기와 비동기는 수행하는 작업의 주체성을 누가 가지고 있는지가 중요합니다. 동기(Sync)는 작업의 주체성을 A가 가지고 있습니다. A가 B에게 작업을 요구하면, A는 B의 행위가 완전히 끝나거나, B가 결과를 돌려줄 때까지 기다렸다가 자신의 남은..
칼럼의 데이터 타입 선정 칼럼의 데이터 타입과 길이를 선정할 때 주의해야 할 점은 다음과 같다. 저장되는 값의 성격에 맞는 최적의 타입을 선정 가변 길이 칼럼은 최적의 길이를 지정 조인 조건으로 사용되는 칼럼은 똑같은 데이터 타입을 선정 너무 긴 길이는 저장 공간의 낭비를 초래하고, 너무 짧은 길이는 추후 스키마 변경 작업 시 많은 부담을 가져오게 되므로 초기 스키마 설정에서 신중하게 조사 후 데이터 타입을 결정해야 한다. 문자열 (CHAR, VARCHAR) CHAR와 VARCHAR의 차이 CHAR와 VARCHAR의 가장 큰 차이점은 고정 길이인지 가변 길이인지의 여부다. 고정 길이 실제 입력되는 칼럼 값의 길이에 따라 사용하는 저장 공간의 크기가 변하지 않는다. 가변 길이 최대로 저장할 수 있는 값의 ..
자바 JDBC와 같은 인터페이스는 애플리케이션과 MySQL DB 중간에 위치하고 있어서 양쪽의 특성을 잘 알지 못하면 최적의 옵션을 선택하기가 쉽지 않다. JDBC 드라이버의 작동 방식을 변경하기 위한 옵션이나 주의할 점을 잘 알고 있어야 상황에 맞게 최적화하여 사용할 수 있다. MySQL Connector/J 자바에서 제공하는 JDBC는 껍데기와 같은 인터페이스이고, 실제 알맹이인 구현체는 각 DBMS 제조사에서 제공하는 JDBC 드라이버이다. Connector/J를 이용해 MySQL 서버에 접속하려면 JDBC URL이라는 개념을 알아야 한다. 여기서의 URL은 일반적인 HTTP, FTP에서 사용하는 URL이 아니라 MySQL 서버의 정보를 표준 포맷으로 조합한 문자열이다. 이를 커넥션 스트링이라고 한..