분류 전체보기688 [서평] 그림으로 공부하는 IT 인프라 구조 해당 리뷰는 jpub의 도서 리뷰어로 참여하여 책을 받은 후, 작성하는 리뷰입니다. 그래도 장점은 장점대로 칭찬할 것이며, 단점은 단점대로 언급할 것입니다. 그림으로 공부하는 IT 인프라 구조(개정판)IT에 종사하는 사람이라면 반드시 읽어야 할 책!IT 인프라 전반에 대한 상식을 그림으로 쉽게 이해한다! 도서 구매 사이트(가나다순)[교보문고] [도서11번가] [반디앤루니스] [알라딘] [영풍문고] [jpub.tistory.com 예전부터 읽어보고 싶다 생각했었던 책인데, 좋은 기회가 생겨 무료로 읽어볼 수 있게 되었다! 2024/04/19 ~ 2023/04/241) 책의 표지2) 단원별 구성3) 읽은 소감우선 저의 글의 앞부분만 보는 분들을 위해 먼저 간단히 4.. Life/Book Record 2024. 4. 24. [GDSC Konkuk Kprintf] 나의 지식으로 누군가에게 영향을 주는 경험 항상 컨퍼런스에 청중으로 참여해 왔던 내가 이번에는 발표연사로 참여할 수 있게 되었다. 언젠가 이런날이 올 것이란 생각은 했었지만, 생각보다 조금 더 일찍 이런 기회가 오게 되었다. 그리고 난 그 기회를 잡아보기로 마음먹었다! 이번 글은 어떤 기술적 내용을 공유하기보다는, 내가 첫 발표연사자로 발표를 하면서 느낀 점과 준비과정을 글로써 남겨볼까 한다. 1. 발표 준비의 시작 사실 맨 처음 "헥사고날" 을 주제로 선정하게 된 이유는, 평소 내가 좋아했던 주제이기도 하고 나름(?) 많은 관련 자료들을 읽었기 때문에 누군가에게 잘 설명할 수 있는 주제라 생각하였다. 그도 그럴것이 실제 발표 때 사용한 내용들인 이미 대부분 내 머리에 있었던 내용이었다. (여담이지만 내 머리에 있는 것을 끄집어내서 설명하는 것 .. Life/컨퍼런스 2024. 4. 18. [OS] System Call이 호출될때 사용되는 Trap 코드 (xv6) 시스템 콜은 예전부터 사용하면서 Limited direct execution 이라는 개념을 알고 있었지만, 이게 코드상으로 어떻게 구현되는지는 확인해보지 않았었다. 그러다 문득, fork()와 같은 system call()이 사용자 정의 함수가 아닌 System Call 인 것을 어떻게 알고 인터럽트가 발생하게 되어 사용하는 것일까?라는 생각이 들었다. 이에 대한 답변을 위해 스스로 학습한 내용을 정리하고자 한다. 1. User Mode와 Kernel Mode의 전환 Limited direct execution에서는 user mode에서 kernel mode로 mode switch 할 때 trap을 사용하게 됩니다. 그렇다면 OS는 trap을 어떻게 사용할 수 있을까요? OS가 trap을 처리하기 위해선.. CS/OS (2022-1) 2024. 4. 13. [JPA] Hibernate6 SQLFunctionTemplate not working anymore 1. 문제의 상황 이번에 SpringBoot 3로 migration 하면서 Hibernate도 6으로 변경하게 되었다. 하지만 더 이상 SQLFunctionTemplate을 사용할 수 없다는 점을 알게 되었다... 나의 프로젝트에는 많지는 않지만, 소량의 CustomFuction들이 존재하고 있던 상황이다... 다음은 기존 Hibernate5에서 커스텀하여 사용하고 있던 "match"라는 이름의 함수이다. 의존성 자체를 찾을 수 없는 상황이였으며, Hibernate의 SQLFunctionTemplate 자체가 deprecated 되었다는 점 을 알게 되었다. 따라서 이를 변경하기 위해 엄청난 삽질을 했는데.... 나처럼 삽질하지 않도록 하기 위해.... 기록을 남겨본다. 2. 해결 방법 1) 다음과 같이.. BackEnd/JPA 2024. 3. 17. [서평] 백엔드 개발을 위한 핸즈온 장고 저의 돈으로 직접 사서 직접 완독해 본 후 써보는 후기입니다. 따라서 장점은 장점대로 칭찬할 것이며, 단점은 단점대로 언급할 것입니다. 백엔드 개발을 위한 핸즈온 장고 그림과 코드로 이해하는 장고 코어 모듈과 DRF 활용법 www.hanbit.co.kr Java, Kotlin, Spring만 줄곧 사용해 오다 이번에 기회가 되어 Django REST Framework을 공부해 볼 수 있는 기간이 생겼다. 2024/03/01 ~ 2023/03/09 1) 책의 표지 2) 단원별 구성 3) 읽은 소감 우선 저의 글의 앞부분만 보는 분들을 위해 먼저 간단히 4가지에 대해 답해보겠습니다. Q 이 책을 읽기 전에 필요한 수준/ 지식은? => 일단, 저자는 주니어 개발자 or 입문자를 위한 책이라 하긴 했는.. Life/Book Record 2024. 3. 16. 험난한 Django REST framework 경험기 저는 평상시에 서버개발에 주로 Java, Kotlin, Spring 조합을 사용하던 "Java 2명 타요"중 1명에 속하는 사람이었습니다. Java + Spring의 개발 직관성과 생산성은 정말 사랑할 수밖에 없다 생각하거든요! 그럼에도 다른 언어 진영의 서버사이드 프레임워크들이 항상 궁금했었습니다. 스프링이 편한 것을 알기 위해서는 다른 도구들이 불편한 것을 알아야 그 대비적 효과가 더 크다 생각하기 때문입니다(?) 다행히 학기 초반에 일주일 정도의 여유시간이 생겼으며, 그나마 언어는 알고 있는 Python 진형의 기술인 DRF를 공부해 보는 시간을 갖게 되었습니다....... 만..... 한 10일 정도 공부해 보고 느낀 점은... 음... 할 말이 많아지는 기술이더군요.... 따라서 제가 직접 느낀.. BackEnd/기타 2024. 3. 15. [쿠링] 헥사고날 아키텍처를 향하여 (By TDD) 이번 글을 통하여 기존의 쿠링의 계층형 아키택처를 Hexagonal Architecture로 리팩토링 해 나가려 한다. 그럼 기존에 어떠한 점이 불편했기에 이러한 선택을 하게 되었을까? 기존의 문제점부터 한번 살펴보자. 1. 기존 아키텍처의 문제점 1-1) 데이터 중심의 설계? 우선 가장 첫 문제점은 우리의 앱이 어느순간부터 데이터베이스 중심적으로 설계가 진행되고 있었다는 점이다. 사용자를 위한 애플리케이션이라면, 해당 문제를 해결할 도메인 로직이 중요한데... 정작 이점은 고려하지 못하고 구현된 아키텍처였다. 다음 글은 내가 이에 대하여 좀더 설명해 둔 글이기에, 자세한 설명은 다음 글을 읽어봐 주시길! https://blogshine.tistory.com/688 계층형 아키텍처는 왜 데이터베이스 중심.. BackEnd/쿠링 2024. 2. 2. 계층형 아키텍처는 왜 데이터베이스 중심의 설계를 유도할까? 1. 계층형 아키텍처가 어때서? 마틴 파울러의 책, PoEAA (Pattern of Enterprise Application Architecture: 엔터프라이즈 애플리케이션 아키텍처 패턴)을 보면 대표적인 3 계층을 소개하는 파트가 있다. 이름도 그 흔한, 3-tire-아키텍처, 또는 계층형 아키텍처 등 부르는 이름도 은근 다양하다. 이러한 아키텍처를 사용하던 방식을 잠시 떠올려보면... 최상단의 표현 계층이 도메인(서비스) 계층에 의존하고, 다시 도메인 계층은 영속성 계층에 의존하게 된다. 사용자 요청의 시작을 기점으로 생각해보면 이러한 흐름은 자연스럽게 데이터베이스에 의존하게 된다. 개발자가 의식하지 못한 사이에 어느덧 도메인 계층의 코드들이 영속성 계층을 기반으로 만들어지게 된다..... 이쯤 돼.. BackEnd/기타 2024. 1. 25. [쿠링] Pattern 하나로 서버 OOM발생시켜 다운시키기 (Heap Dump 보기) 1. 처음엔 문제인 줄 몰랐다... 현 쿠링은 엄청 비싼 인스턴스를 사용하지는 않고 있기 때문에 인스턴스 한대당 Memory가 512MB에 불과한 서버를 사용 중이다. (대신 값싼 거 3대로 운영 중) 심지어 메인서버는 Heroku이고, 테스트서버와 모니터링 서버는 AWS에서 기동중이다. (메인 서버 이전이 쉽지가 않다...) 평상시에는 크게 문제처럼 느껴지지 않던 부분이 시간적 여유를 갖고 보니 조금은 어색하게 느껴진 부분이 있었다. 우선 다음 모니터링 기록을 살펴보자 ▶ Heap : G1 Eden Space ▶ Heap : G1 Survivor Space G1 Eden 영역에 수시로 생성되고 있는 양이 어림잡아 170MB, 그중 Survivor로 살아남는 녀석들은 MAX 7MB. 그럼 163MB나 매.. BackEnd/쿠링 2024. 1. 18. [쿠링] Spring JDBC를 사용한 Batch Insert 구현과 고민 예전부터 시간 나면 해결하고 싶었던 문제 중 하나인 Batch(Bulk) insert에 대한 구현을 하며 이번글을 남기게 되었다. 기존에 주로 사용해 왔던 JPA의 한계로 인하여 이러한 결정을 하게 되었는데, 어떤 문제점과 고민이 있었는지 이번 글을 통하여 공유해 볼까? 한다. 고민 1 : JPA가 무엇인가? 이것부터 생각해 보기 기존에 내가 사용하던 ORM 기술인 JPA는 ORM의 대표 기술이다. 그럼 ORM은 어떤 철학을 갖고 설계된 것일까? 이를 wiki에서 검색해 보았다! ORM (Object–relational mapping) Object–relational mapping (ORM, O/RM, and O/R mapping tool) in computer science is a programmin.. BackEnd/쿠링 2024. 1. 14. [알고리즘] 불확실한 상황을 현명하게 사용하는 코드 이번글은 학교 알고리즘 수업 시간에 Randomized algorithm을 배우면서 느낀 점을 남기는 글입니다. 어떤 알고리즘을 설명한다기보다는, 제가 느낀 점을 남겨보는 글입니다. 1. 불확실한 상황을 이용해 볼 수 없을까? 우리가 코드를 작성할 때 모든 상황이 확실하게 결정된 상황에서만 진행하는 경우는 거의 없다, 어쩌면 이는 코드뿐만 아니라 대부분의 사람들이 하루를 살아가는 자연스러운 방법(?) 중 하나일지도 모른다. 물론 우리는 계획이라는 것을 만든다. 해당 계획을 통하여 시간이 얼마나 걸릴지 예측할 수도 있고, 얼마나 많은 리소스가 필요한지 또한 측정할 수 있다. 하지만 이는 어느 정도의 사전 정보가 있다는 가정 하에 가능할 것이며, 당장 첫 시도를 해야 하거나, 상황 자체가 너무나 불확실하다면.. Algorithm/PS 알고리즘 정리 2023. 12. 14. [계산 이론] The Halting Problem 컴퓨터를 전공 배우고 있는 사람 입장에서, Halting Problem정도는 한번 증명해 보고 정리해 두면 좋을 것 같다 생각하여 글을 남겨봅니다! 1. Halting Problem 이란? 우선 정의부터 살펴보자! There’s no algorithm that can look at a program’s source code and always correctly determine if the program will run forever or not. 사람의 언어로 조금 바꿔보면, 유한시간안에 프로그램을 실행해보지 않고 정지할지 말지를 결정하는 알고리즘은 존재하지 않는다는 의미이다! 2. Proof by contradiction 다음과 같이 "input과 output을 갖는 halt라는 프로그램(알고리즘)이.. CS/Computation Theory (2023-2) 2023. 12. 12. 이전 1 2 3 4 ··· 58 다음