전체 글49 amqplib을 가볍게 이해하기 먼저 들어가기 앞서 왜 amqplib 소스 코드를 봤냐면...Node.js 공부 겸, 오픈 소스 읽는 연습 겸, 네트워크에 대한 학습 겸, RabbitMQ에 대한 블랙박스를 없애기 위한 학습을 위해 진행했습니다.제일 먼저 amqplib이 어떻게 동작하는지 이미지를 확인하고 따라가면 됩니다. 💡 Frame(프레임)이 왜 여기서 나와?흔히 OSI 7 계층의 2 레벨 계층의 데이터 전송 단위를 Frame이라고 부르는데요. AMQP에서는 프로토콜로 보내는 정형화된 데이터 단위를 Frame이라고 부릅니다. ⇒ 둘의 용어가 같아서 잘 구분해야 합니다.HTTP에서 요청 메시지의 헤더가 일정한 양식으로 정해져 있듯이, AMQP에서 Frame 또한 아래와 같이 양식이 정해져 있습니다. 소켓 생성(TCP 연결)우리가 .. 2025. 10. 31. 카카오 코테를 준비하면서, 코테를 치고 나서 느꼈던 것들 10일간의 코테 준비 회고코테 준비를 하면서Java에 대해 잘 모르는구나.나는 자바에 대해, 애초에 언어에 대해 잘 모르고 있었다.HashTable에 대해 잘 모르는데 지금까지 사용해왔다.마법같은 자료구조라 조회에 O(1)이 나오는 게 아니었다.이 해시테이블도 결국 뜯어보면 배열의 일종이었다.key를 해싱해서 숫자로 변환하고 그 숫자가 index인 배열에 값을 저장하는 것이었다.하지만 해싱과정에서 index가 겹칠 수 있고, 그것이 해시 충돌이었다. 이런 경우 array의 value로 리스트나 트리 등으로 변환해서 저장하기도 하는데, 이 부분은 구체적으로 어떻게 돌아가는지 이제 공부를 해야 할 것 같다.JVM, Node.js 등의 런타임 환경은 뭘까?String을 깡으로 쓰면서 메모리 관리에 대해 궁금함.. 2025. 10. 12. [AWS] RDS로 데이터 삽입 삽질 RDS로 데이터 삽입하고 스테이징서버 구축하기상황: 어떤 문제가 있었나?부하테스트를 실제 서버와 같은 스펙에서 진행하기 위해 스테이징 서버와 K6서버 그리고 RDS를 구축해야 했다.그 중 RDS에 어떻게 데이터를 삽입했는지에 대한 소개이다.경매 데이터 130만 건을 csv 파일 기반으로 파싱해서 읽고 파이썬 코드가 1300만 건의 입찰과 2000만 건의 스크랩 데이터를 생성해서 삽입한다.접근: 어떤 기술로 어떻게 해결했나? / 사고 과정 설명하기예전 NCP에서는 앞에 퍼블릭 인스턴스를 두고 SSH 점프호스트를 사용해서 프라이빗에 접근했다.지금은 EIC 엔드포인트가 생성되어 있어서 이것을 활용하면 SCP를 통해 데이터를 전송할 수 있지 않을까? 생각했다.첫 번째 시도, scp를 통해서 csv 파일을 전송하.. 2025. 7. 3. 태도를 반성하게 된 날 저번 주 금요일에 있었던 일이다.돌아오는 월요일, 6/9에 프로펙트 과정 진행상황에 대해 2차 발표가 있다.우리 팀의 프론트 개발 담당자 중 한 분이 취업이 되어 풀스택으로 하던 팀장이 프론트 쪽으로 완전히 전환을 했다.그래서 그 파트에 대한 테스트 코드 작성 및 리팩토링을 내가 맡았다.맡았으면 맡은 바 최선을 다하면 되는데 코드 상태가 좋지 않아 나도 모르게 투덜거렸다.그렇게 23시쯤 교육장 정리를 하고 혼자 나오는데 문득 엘리베이터에서 많은 생각을 하게 되었다.제미니의 개발실무에서 재민님께서 말씀하셨던 내용과 옆 팀의 개발 덕후 동료와 나눴던 대화가 떠올랐다.회사는 개인의 성장을 위해 존재하는 곳이 아니며 개인이 성장할 길은 본인이 생각해야 한다는 것이 전자였다.후자는 통제할 수 없는 내용에 마음쓰지.. 2025. 6. 7. 도메인이 다른 데이터를 여러 곳에서 사용해도 되는가? 도메인이 다른 데이터를 합쳐서 사용해도 되는가?팀원 중 한 분이 프로젝션 관련해서 Payment(결제 내역 테이블)에 있는 데이터를 활용해서 최근 7일 사이의 가장 큰 낙찰가의 경매를 보여주는 API를 작성하는 데 도움을 달라는 요청이 왔다. 이 때 의문이 좀 들었다.약간의 배경 설명을 먼저 하겠다. 지금 경매 검색은 bid(입찰 테이블), scrap(쉽게 생각해서 즐겨찾기 기능의 테이블), auction_image(경매 이미지 url 저장 테이블)에 대해 조인 연산을 진행한 뒤에 데이터를 찾아온다. 그 이유는 입찰 횟수, 최고 입찰가, 즐겨찾기 횟수, 경매 썸네일을 가져와야 하기 때문이다. 이 때문에 한 번에 이해가 힘든 쿼리가 발생했다. (글의 마지막에 첨부된 SQL문)내가 구현한 경매 검색 쿼리와 .. 2025. 6. 7. 잘못된 리팩토링, OOP와 순수 함수 잘못된 리팩토링, OOP와 순수 함수이전에 올렸던 포스트가 잘못된 부분이 있었다.순수 함수를 사용하면서 테스트가 더 쉬워진 것은 분명히 맞는 사실이다.하지만 JPA와 엔티티, 객체지향의 관점에서는 좋은 코드가 아니었다.사진으로 살펴보자.이전 글에서 이런 코드를 보여주며 테스트하기 어려운 코드를 분리하고 순수 함수를 사용하자는 의견을 냈었다.이런 패턴을 가질 때 좋은 점은 비즈니스 레이어의 코드를 쉽게 테스트할 수 있다는 것이다.테스트 코드를 쉽게 작성할 수 있고 스프링부트 테스트 혹은 JPA 테스트처럼 스프링 컨텍스트를 활용하지 않고도 테스트할 수 있어 속도가 매우 빠르다.이제 단점에 대해 살펴보자.순수 함수에서의 객체순수 함수에서는 객체의 값이 변경되면 새로운 객체를 생성해서 반환한다.그래서 나는 주황.. 2025. 6. 7. 이전 1 2 3 4 ··· 9 다음