분류 전체보기

· 독서
2023년부터 작년(2025년)까지 꾸준히 책을 읽고 있다.전반적으로 읽은책들을 보니 소설을 많이 읽은듯하다. 출퇴근 시간들만 이용하여 독서를 해오고 있음에도 꽤 읽은책들이 많다. 올해도 뭘 읽었는지 정리하고 리뷰해보자. (★ ☆) 1. 파운데이션(1~7) | 아이작 아시모프 (장르 소설/SF) | ★★(2.0)오래전에 나온 책이지만 SF계의 거장 아이작 아시모프의 장편 소설 중 특히 유명하여 읽기 시작했다.특히 아이작 아시모프는 "로봇 공학 3원칙"을 생각해낸것으로 유명한데, 로봇이 인간을 해하지못하게 기본적으로 설정된 3원칙으로서영화 아이로봇 등 사용되었다고 알고 있다. 그리고 저자의 책 중 "최후의 질문"에 관한 소설을 정리한 영상을 본적이 있었는데, 그때에도 굉장히 내용이 흥미..
이름만 들어도 좋은회사에서 취직할것같은 기술테라폼 과연 테라폼이 무엇일까? 1. IaC(Infrastructure as Code)테라폼은 대표적인 IaC 도구이다. IaC란 마우스 클릭으로 일일이 만드는게 아니라, 코드를 작성하여 자동으로 생성하고 관리하는 도구를 말한다.테라폼은 사실상 이 IaC분야의 표준으로 자리를 잡았는데, 이는 단순히 테라폼이 먼저 나왔기 때문이 아니라, 클라우드 생태계 전반의 현실적인 요구를 충족했기 때문이다. Aws의 CloudFormation,Google Cloud Deployment Manager,Azure Resource Manager 등 각각 클라우드 서비스만의 고유한 전용 IaC들이 있지만 유독 테라폼이 각광받고 사랑받는 이유가 무엇일까? 1.1 멀티 클라..
백엔드를 개발하면서 다양한 패키지 구조를 접한다. 복잡도, 프로젝트 규모, 조직원들의 합의에 의해 다양한 아키텍처를 접하는데,주로 사용되는 패키지 구조를 비교하며 알아보자. 1. 왜 패키지 구조를 가지는가? 초창기 소프트웨어 개발분야(특히 자바, C#)에서는 계층형 구조(layered architecture)를 선호했다.그 이유는 그 당시(1990년대)에는 소프트웨어를 개발함에 있어서 명확한 책임 분리가 최우선 목표였다.그리고 그에따라 3개의 계층구조가 자연스럽게 나왔고, Controller (Presentation): 화면이나 요청을 처리Service (Business Logic): 핵심 로직 담당Repository/DAO (Data Access): DB와 통신이렇게 3개의 계층으로 주로 사용했다..
· 그 외
최근에 신규 사이드 프로젝트를 진행하고 있다.하나의 서버, DB로 격리된 다른 이용자들을 격리하여 처리하는 목적으로 알아보다가,멀티테넌시 아키텍처를 알게되었고, 이를 도입했다. 구체적으로 어떤면에서 좋고, 어떤점을 주의해야할지 학습해보자. 1. 정의Multi-Tenancy(멀티테넌시) 는Multi: “여러 개의”Tenancy: “세입자” 또는 “고객(tenant)” 이라는 단어가 합쳐진 형태다.즉,여러 명의 고객(Tenant) 이 하나의 애플리케이션 인스턴스나 인프라를 함께 사용하되,각자의 데이터와 설정은 독립적으로 격리된 구조를 말한다. 말이 어렵지만,우리 개발자들이 자주 사용하는 Slack, Confluence, Notion 같은 서비스들이대표적인 멀티테넌시 구조를 가지고 있다. 컨플루언스h..
우리네 개발인생 쿼리가 느려지면 인덱스를 추가할생각부터 한다.그러나 데이터베이스가 실제로 어떻게 쿼리를 처리하는지 분석한적이 있던가? 이번에는 데이터베이스 성능 최적화의 핵심인 실행계획 이해하고실제로 어떻게 성능을 튜닝할 수 있는지 알아보자 1. 실행계획? 그게 뭔데DB 실행계획은 EXPLAIN 명령어로 확인할 수 있는 쿼리 실행계획을 분석하고 개선하는 과정을 말한다.실행계획은 DB 엔진이 수행하는 쿼리의 순서와 방법을 미리 계획한 로드맵과 같다고 할 수 있다. 이를 통해 궁극적으로쿼리가 왜 느린지,어디서 병목이 발생했는지,그리고 어떻게 개선할 수 있는지를 파악할 수 있다. 2. 실행계획 프로세스 실행 계획 순서1. 실행계획 확인 1.1 EXPLAIN or EXPLAIN ANALYZE 명령어..
우리네 개발인생 다양한 DB와 함께하고 있다. 스타트업에서는 어떤 DB가 좋고, 대기업에서는 어떤 DB가 좋다는 말이 많다. 각각의 DB별 특장점을 비교해보고 가장 합리적인 DB를 채택해보자. 1. 특장점 MySQL특징가장 널리 사용되는 오픈소스 DBMSLAMP 스택의 핵심 (Linux + Apache + MySQL + PHP/Python/Perl 조합의 웹 서비스 표준 아키텍처)오픈소스 버전과 엔터프라이즈 버전이 별도로 존재장점설치와 사용이 쉬움GPL(일반 공중 사용 허가서)로 오픈소스 버전은 무료로 사용 가능읽기 성능과 단순 웹 서비스에 최적화됨(아래에 상세 내용 기술)활용 사례 - WordPress, Facebook(초기), YouTube(초기) 등 PostgreSQL특징"세계에서 가장 진..
· 그 외
make.com, n8n, Zapier ... 최근에 업무 / 워크플로우 자동화툴들이 굉장히 많이 나오고 있다. 이런것들을 활용하여 부업으로 여러가지 돈을 번다는 강의들도 많다. 자동화 도구들을 비교해보고 무엇을 적용해볼지 잘 선택해보자. 1. 자동화 툴 비교1.1 n8n vs Make.com구분n8nMake.com비용무료 (셀프 호스팅) + 유료 클라우드제한된 무료 플랜 + 유료 플랜설치 방식셀프 호스팅 가능 (Docker 등)클라우드 서비스커스터마이즈오픈소스라 코드 수정, 노드 직접 추가 가능커스텀 API 연동 지원은 있지만 코드 수정은 불가대상 사용자개발자, 기술 친화적 사용자개발자 + 마케터 혼합기능 범위API 호출, DB 연결, 조건 분기, 복잡한 워크플로우 가능시각적 UI로 복잡한 시나..
코틀린은 자바 기반이지만, 단순히 "간결한 문법"을 목적하지 않는다. 언어 자체에 안정성, 생산성, 표현력 강화를 위한 언어적 장치들을 마련해 두었고,이는 개발자들의 일상적인 고충을 직접 겨냥하고 있다. 구체적으로 알아가보자. 1. 안정성 기능1. Null Safety 자바 개발자라면 누구나 한 번쯤 NullPointerException을 마주한다.자바에서는 null 가능성을 코드 레벨에서 강제할 방법이 없어, 결국 런타임에서 버그가 터지곤 한다. 코틀린은 타입 시스템에 null 가능성 자체를 포함한다.즉, String(null 불가)와 String?(null 허용)을 변수 선언 단계에서부터 구분한다. 즉 변수 선언 단계에서 String / String? 인지 구분하여"여기서 null이 올 수 있다"라고..
그동안 재택 근무 시 chrome remote를 이용하여 회사 PC로 작업을 했었다.(사유: 귀찮음) 그러나 작은 화면으로 업무 피로도 상승과 언젠가 처리해야할일이라고 생각하여내 PC에서도 회사 계정을 같이 이용할 수 있도록 처리했다. 현사태 파악현재 내 로컬 PC에서는 깃헙에HTTPS + Personal Access Token 방식으로 인증하여 사용하고 있었다. 당연하게 내 개인 깃헙 정보(pnci1029)는 인증이 되고,회사 깃헙정보(chhong00)는 찾지못한다. 내 개인계정 + 회사계정 + @ 등여러 계정정보들을 같이 깃 체크아웃 하듯이 사용하고싶은데이용할 수 있는 전략들은 다음과 같다. SSH를 활용하는 전략이 + 한 번 설정하면 영구 사용 + 여러 계정 관리 용이+ 키 기반 보..
단위 테스트에서 나오는 자주 보이는테스트 더블과연 무엇일까? 1. 테스트 더블스턴트맨을 아는가?주인공이 위험하거나 고난이도 무술과 같이 실제 배우를 대체하는 사람이 스턴트맨이다. 이런 스턴트맨중에서 주연배우와 체형이나 생김새가 비슷하여 액션 외 간단한 연기까지 하는 이들을 스턴트 더블(Stunt Double)이라고 부른다. 테스트에서도 실제 객체를 직접 쓰기 힘들 때 테스트 더블을 사용한다. 2. 테스트 더블? 쓸 일 없을거같은데요? 테스트 더블 사용 사례개발되지 않은 모듈 사용특정 상황(예외 발생, 에러 응답 등)을 강제로 재현해야 할 때단위 테스트의 고립성을 보장을 위해 테스트 더블 종류 Dummy매개변수를 채우기 위해서만 사용 실제로 사용X호출되지 않고 전달만 됨. (예: n..
chhong
'분류 전체보기' 카테고리의 글 목록