개발(4)
-
스프링의 기본 철학, 스프링 삼각형
기능 구현에만 치중하다보니, 면접을 볼 때 질문 받는 스프링의 기본 철학에 대해 깔끔하게 대답하지 못하는 걸 많이 느껴 백기선님의 "예제로 배우는 스프링 입문(개정판)"을 수강하고 간단하게 정리한 내용. 스프링 삼각형 스프링의 3대 요소는 DI와 IOC, AOP, PSA 세 가지로 나눌 수 있다. 각각 의존성 주입과 제어의 역전, 관점 지향적 프로그래밍, 이식 가능한 서비스의 추상화 정도로 번역이 된다. 다만 이걸 글만 읽고 이해할 수 있는 번역어인진 또 별개의 문제인지라... 대부분 약어로 쓰는듯 하다. DI와 IOC (Dependency Injection & Inversion of Control) 이 두 개념의 핵심은 객체의 생명주기를 사람이 관리하는 게 아니라 기계에 관리를 시킨다는 것이다. 우리는..
2021.07.03 -
홈서버에서 클라우드로 블로그 이사하기 (2)
이 글은 21.03.13일에 쓰여진 글로, 현재는 티스토리로 정착을 하였으니 지나간 일이 되었습니다.😎 Velog => 홈서버(워드프레스) => AWS(워드프레스) => 티스토리가 된 셈이네요. 홈서버에서 클라우드로 블로그 이사하기 (1) 홈서버에서 클라우드로 블로그 이사하기 (2) 홈서버에서 클라우드로 블로그 이사하기 (1) - 전기 염소는 안드로이드를 꿈꾸는가 홈서버에서 클라우드로 블로그 이사하기 (1) 홈서버에서 클라우드로 블로그 이사하기 (2) Contents1 불타는 금요일 밤에2 노인 학대는 이제 그만3 클라우드를 찾아 떠나는 여행 불타는 금요일 밤에 blog.gthd.app 클라우드를 찾아 떠나는 여행 (2) 오라클에서 500만번 시도한 끝에 결국 물을 먹고 다음으로 찾아본 클라우드는 GCP..
2021.07.03 -
홈서버에서 클라우드로 블로그 이사하기 (1)
이 글은 21.03.13일에 쓰여진 글로, 현재는 티스토리로 정착을 하였으니 지나간 일이 되었습니다.😎 Velog => 홈서버(워드프레스) => AWS(워드프레스) => 티스토리가 된 셈이네요. 홈서버에서 클라우드로 블로그 이사하기 (1) 홈서버에서 클라우드로 블로그 이사하기 (2) 불타는 금요일 밤에 사람이 가장 행복하다는 금요일 저녁... 퇴근 후 때 아닌 블로그 이전 작업을 진행하였다. 꽤 재밌게 작업해서 관련 내용 공유해야겠다고 생각했다. 노인 학대는 이제 그만 내 책상 한켠에선 Dell Latitude 6430U가 홈서버로 열심히 구르고 있다. 14년 2월 모델에 듀얼 코어 CPU, 기본 램은 4GB, 달려있는 SSD도 고작 128GB이라 초라해보이지만 개발자가 다루기엔 차고 넘치는 사양이다. ..
2021.07.03 -
PostgreSQL에서 Merge/Upsert 사용하기
데이터베이스 작업을 하다보면 들어오는 데이터가 없을 경우는 Insert, 있을 경우는 Update 해야할 때가 있습니다. 제 경우는 통계를 내서 웹으로 실시간으로 뿌려줘야하는 상황인데 GROUP BY 문으로 집계하기엔 ROW가 너무 많아 길게는 API 하나에 50초 이상 걸리는 상황이었습니다. 협력사의 테이블인데다가 인덱스는 다른 기능에 맞춰 걸려있어서 추가로 건다고 해도 효과가 드라마틱하지도 않은 상황이었어요. 저는 이 문제의 해결방법을 고민하다가 스케쥴러를 이용하여 통계에 필요한 데이터를 SELECT 해서 통계 테이블에 데이터를 넣어주고 이 테이블을 바라보게 하는 형태로 문제를 해결하였습니다. 이 때 사용한 쿼리가 PostgreSQL의 ON CONFLICT문입니다. Oracle의 Merge문 같은 기..
2021.07.03