Chapter2. Data Models and Query Languages
2023. 4. 9. 14:17
스터디/Designing Data-Intensive Applications
이번 챕터에서는 데이터베이스에서 데이터를 표현하는 다양한 형태의 모델에 대해 살펴보려고 합니다. 먼저, 관계형 데이터베이스의 데이터 모델부터 시작하여, 다양한 NoSQL 데이터베이스에서의 데이터 모델까지(document database, graph database) 다양한 형태의 데이터 모델에 대해 살펴볼 것입니다. 이러한 데이터 모델은 각각의 장단점을 갖고 있으며, 특정한 사용 사례에 적합한 데이터 모델을 선택하는 것이 중요합니다. 또한, 이번 챕터에서는 각 데이터 모델에 대한 쿼리 유형도 다룰 예정입니다. 관계형 데이터베이스의 경우 SQL을 사용하여 데이터를 검색하며, NoSQL 데이터베이스의 경우 각각의 데이터 모델에 맞는 쿼리 언어를 사용하여 데이터를 검색합니다. 데이터 모델링과 쿼리 유형에 대한..
Chapter1. Reliable, Scalable and Maintainable Applications
2023. 4. 8. 14:36
스터디/Designing Data-Intensive Applications
챕터 1은 데이터를 다루는 애플리케이션을 신뢰할 수 있고 확장 가능하며 유지 보수할 수 있는 형태로 개발하는 방법을 살펴보는 큰 그림을 제시합니다. 저자는 신뢰성, 확장성 및 유지 보수성이라는 세 가지 특성에 중점을 두어 애플리케이션을 개발하는 방법을 소개합니다. 신뢰성(Reliability) 신뢰성이 높은 애플리케이션은 다음과 같은 특징을 갖습니다: 애플리케이션은 예상한 대로 동작합니다. 시스템은 예상치 못한 사용자 동작에도 견딜 수 있습니다. 예상된 부하 상황에서도 애플리케이션은 정상적으로 동작합니다. 권한이 없는 요청을 차단할 수 있습니다. 저자는 애플리케이션의 신뢰성을 저하시킬 수 있는 두 가지 요소인 failure와 fault를 설명합니다. Failure는 시스템이 사용자 요청을 처리할 수 없는..
[Armeria] Armeria contribution - Log unhandled exceptions
2023. 3. 11. 01:18
Open Source/Armeria
이번 포스팅에서는 LINE의 대표적인 오픈소스인 Armeria에 기여한 경험을 공유하고자 합니다. Armeria Armeria는 Java, Kotlin 또는 Scala로 작성된 오픈 소스 비동기 HTTP 및 gRPC 클라이언트 및 서버 프레임워크입니다. Armeria는 java 진영의 대표적인 비동기 서버 프레임워크인 Netty를 기반으로 하며 netty를 더 쉽게 사용할 수 있는 API를 제공합니다. Netty를 기반으로 요청을 비동기적으로 처리하므로 확장성이 크다는 장점이 있습니다. Contribute Armeria는 annotated service를 통해서 요청을 처리할 수 있습니다. @Get("/hello") public String hello() { return "hello" } 하지만 anno..
[출판] <비전공자의 정석> 무료 전자책
2023. 2. 13. 18:39
Career/활동
보러가기 , 첫 번째 전자책을 작성 완료했습니다. 비록 제목이 다소 과장됐지만 너그러운 마음으로 봐주시면 감사하겠습니다 ^^... . 이 책은 IT업계가 처음인 비전공자 또는 개발자로 취업하시고자 하는 분들에게 방향성을 제시하기 위해 만들었습니다. 책의 줄거리는 비전공자인 제가 어떻게 개발자가 됐는지, 개발자 취업을 위해 어떻게 준비했는지와 마지막으로 멘토링과 다양한 비전공자분들을 만나면서 받았던 대표적인 질문들에 대한 FAQ 형식으로 구성됩니다. 이 책은 모든 취업준비생이 대기업에 갈 수 있다고 얘기하지 않습니다. 하지만 좋은 IT 기업을 목표로 한다면 준비를 어떻게 해야 하는지 방향을 잡지 못하는 분들께 최대한 도움이 될 수 있도록 작성하였습니다. 책의 마지막에는 멘토링이 필요하신 분들께서 제게 직접..
[AI] AI 시대에서 개발자로 살아남기 - 새로운 문제 해결 기법 AI
2023. 2. 2. 01:13
Artificial Intelligence
ChatGPT의 등장으로 또 한 번 IT에 지각변동이 일어나고 있습니다. 개발자가 쉽게 대체되지는 않겠지만 개인적으로 AI 시대에 뒤처지는 개발자는 대체될 가능성이 높다고 생각합니다. AI 모델을 직접 개발하는 것은 제 목표가 아닙니다. 애플리케이션에 이미 개발된 AI를 활용하거나 AI를 입맛에 맞게 fine tuning 할 수 있는 능력을 키우는 게 제 목표입니다. "AI 시대에서 개발자로 살아남기" 시리즈를 통해 AI 모델을 활용해서 어떻게 애플리케이션을 개발하고 fine tuning을 하는데 필요한 지식을 공유하고자 합니다. 이 시리즈에서는 원리를 학습하고 응용하는 방법을 배우는 전통적인 학습 순서보다는 이 둘을 적절히 번갈아가며 AI를 응용할 수 있는 능력을 키우려고 합니다. 비즈니스 목표와 AI..
[Java] Java 실행원리 Deep Dive
2023. 1. 23. 21:01
Java/Deep Java
HTML 삽입 미리보기할 수 없는 소스 Java Java는 다양한 운영체제에서 동일한 소스코드를 실행할 수 있는 "write once, run anywhere"의 철학을 지닌 프로그래밍 언어입니다. 국내에서 가장 활발히 사용되는 언어이며 제가 현업에서도 주로 사용하는 언어입니다. 이번 포스팅을 통해서 자바가 실행되는 원리에 대해 살펴보겠습니다. 프로그래밍 언어가 특정 운영체제 위에서 실행되기 위해서는 해당 운영체제가 이해할 수 있도록 코드가 작성돼야 합니다. 하지만 자바 개발을 하신 분들은 동일한. java 파일을 맥 OS, 윈도우 또는 Linux에서 실행한 경험이 있으실 겁니다. 정확히는 javac(자바 컴파일러)에 의해 컴파일된 .class 코드가 동일하더라도 해당 코드는 서로 다른 운영체제 위에서 ..
[Career] 2022년 회고 - 성장
2023. 1. 7. 11:30
Career/회고
어느덧 개발자로서 1년이 지났습니다. 1년 동안 제게 있어 가장 중요한 목표는 "성장"이었습니다. 새로운 분야의 새로운 사람들 사이에서 조금이라도 보탬이 되고자 힘차게 달렸던 한 해였습니다. 이번 포스팅은 제가 어떻게 1년을 보냈는지 일기 형식으로 작성해보고자 합니다. 새로운 시작 2022년 1월 1일, 첫 회사인 라인플러스에서 결제 및 정산 플랫폼 개발 업무를 시작했습니다. 회사에서는 약 1달 동안 신입을 위한 온보딩 프로그램을 제공했기에 다양한 회사 시스템에 익숙해지는데 큰 어려움은 없었습니다. 곧 맡게 될 업무에 빠르게 익숙해지도록 온보딩 프로그램과 병행하여 팀에서 정리한 문서를 반복해서 읽고 정리하면서 용어와 비즈니스 흐름을 익혀나갔습니다. 개발 본격적인 개발은 UI 수정 또는 비즈니스 로직에 검..
[Database] DBA급 개발자로 - #0 소개
2022. 12. 18. 13:27
Database/DBA급 개발자로
DBA급 개발자로 시리즈는 데이터베이스를 더 깊게 학습하고 싶은 개발자들을 위한 시리즈입니다. 해당 시리즈는 Youtube의 CMU Database Group 강의를 기반으로 작성됐습니다. 목차 1. Relational Model 2022.08.31 - [Database] - [Database] DBA급 개발자로 - #1 Relational Model Relational model Tuple VS Record 2. Intermediate SQL 2022.08.31 - [Database] - [Database] DBA급 개발자로 - #2 Intermediate SQL Aggregation functions Window functions CTE(Common Table Expressions) 3. Databa..