전체 글 (22) 썸네일형 리스트형 Claude Code 기반 백엔드 개발: 포트폴리오 자동화 ※ AI를 활용해, 개인적으로 활용하기 위한 내용을 정리하였습니다. 백엔드 개발 과정에서 생성형 AI 도구인 Claude Code를 도입하면 생산성이 대폭 향상된다. 하지만 개발 진행 중 겪은 수많은 트러블슈팅 경험, 아키텍처 의사결정, 코드 변경 사항을 포트폴리오 형태로 정리하려 할 때 체계적인 전략이 없다면 깔끔하게 정리하기 어렵다.인터넷 상에서 Git Commit, GitHub Issue, CLAUDE.md, docs/ 폴더, PORTFOLIO.md 등의 기록 방식이 용어가 통일되지 않거나, 서로 충돌하는 등 혼선을 주곤 한다. 본 글에서는 이를 정돈하여, 개발 과정에서 자연스럽게 포트폴리오 데이터가 수집되도록 하는 단일 자동화 파이프라인으로 정리했다. 1. 역할 분담 및 용어 정립 (충돌 해결)기.. [프로젝트 기록] TCP 소켓 통신 클라이언트와 서버의 동작에 대해서 코드 분석을 통해 알아보자. 0. 핵심 요약 핵심 키워드: Winsock 초기화, socket 생성, 바이트 정렬, Listen socket과 Accept socket의 차이, 3-Way handshake 1. 서버 측 주요 함수 분석 // 1. initialize Winsock WSADATA wsaData; // WSADATA: struct with info on socket initialization if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) return 1; // initiate Winsock DLL from process. return 0 on success // MAKEWORD(2, 2) for Winsock 2.2 //.. 외부 라이브러리 링킹 과정 C++ 프로젝트에서 소켓 통신을 구현하던 중, #include 와 #pragma comment(lib, "ws2_32.lib")를 모두 작성하게 되었다. 이 두 줄이 각각 어떤 역할을 하는지, 그리고 라이브러리 링킹 방식에 대해 정리해 보았다. 1. 두 줄을 모두 적어야 하는 이유socket을 사용하기 위해 필요한 Windows 소켓 라이브러리(ws2_32.dll)가 외부 라이브러리이기 때문이다. #include : 전처리기가 헤더 파일에서 함수의 프로토타입과 구조체 정의를 가져온다. 이를 통해 컴파일러는 socket() 같은 함수가 존재함을 인지하고 코드를 컴파일할 수 있게 된다.#pragma comment(lib, "ws2_32.lib"): 실제 함수의 구현체가 담긴 라이브러리 파일 ws2_32.li.. [C++ STL] Queue 1. 개념STL 중 Queue에 대해 정리해보겠다.Queue는 FIFO (first-in, first-out) 구조의 자료구조이다.데이터 개수가 정확히 예측되지 않을 때 Queue는 동적으로 크기를 늘려주므로 사용이 편리하다.물론 순환 큐는 STL에 없기 때문에, 이 경우에는 배열로 직접 구현해야 하겠다. 템플릿 파라미터로는 저장되는 원소의 자료형 T, 원소를 보관하는 컨테이너 Container가 있다.기본적으로 deque를 사용하지만, 필요에 따라 list를 명시해서 사용할 수도 있다.Queue 클래스는 내부 컨테이너의 기능을 제한하여 제공하는 Wrapper 역할을 한다(Container adapter). 2. 주요 멤버함수기능함수설명시간 복잡도조회front()맨 앞에 있는 원소 리턴O(1)조회bac.. [자료구조] C++ STL - Stack C++ STL 중 Stack에 대해 정리해보겠다.Stack은 LIFO (last-in, first-out) 구조의 자료구조이다. 템플릿 파라미터로는 저장되는 원소의 자료형 T, 원소를 보관하는 컨테이너 Container가 있다.기본적으로 deque를 사용하지만, 필요에 따라 vector나 list를 명시해서 사용할 수도 있다.Stack 클래스는 내부 컨테이너의 기능을 제한하여 제공하는 Wrapper 역할을 한다. 주요 멤버함수reference top(): Stack의 맨 위에 있는 원소(가장 최근에 push된 원소)를 빼지 않고, 단순히 리턴한다. (상수 객체용 const_reference 버전도 존재한다)bool empty() const: Stack이 비어있는지 확인한다. 비어있다면 true를, 아니.. Blocking socket VS Non-blocking socket 및 버퍼 동작 원리 1. 기본 개념Blocking: 제어권이 해당 처리에 묶여서, 프로그램이 다음 줄로 넘어가지 못하고 대기 상태가 되는 것을 의미한다.Non-blocking: 프로그램이 대기 상태가 되지 않아 다른 작업을 동시에 할 수 있지만, 데이터가 준비되었는지 계속 확인하는 과정(Polling)이 필요하다.Blocking socket : 데이터 송신함수와 수신함수가 block(차단, 대기) 될 수 있는 경우다. socket()으로 socket을 생성하면, blocking socket이 생성된다.Non-blocking socket: 데이터 송신함수와 수신함수가 block 되지 않고, 곧바로 리턴된다. 2. Socket 버퍼의 동작socket은 송신 버퍼(send buffer)와 수신 버퍼(receive buffer)를.. [프로젝트] 투표 시스템 확장 Github repo 중 java로 된 투표 시스템이 있었다. 후보를 지정할 수도 없고, 로컬 프로그램이라서 투표 시스템이라고 하기에는 부족했다. 이 repo에 네트워크 기능과 보안 기능을 추가하는 프로젝트를 진행하려고 한다. GitHub - vidhikhatwani/Polling-System-Java-Application: Online Polling System: a GUI-based Java application with MySQL Database.Online Polling System: a GUI-based Java application with MySQL Database. - vidhikhatwani/Polling-System-Java-Applicationgithub.com 운영체제에 가까운 수.. 윈도우에서 nginx와 php, mysql을 연동해보자 PDOException: Could not find driver 위의 문제가 있었다 https://pblab.tistory.com/22 PHP - Windows + nginx + PHP7 + MariaDB 서버구축 ※본 글은 지극히 개인적으로 참고하기위한 글로써 해요체 등의 존대는 쓰지 않으며, 설명이 부실할수 있습니다. 음슴체나 반말어투에 거부감이 있으신분은 다른자료를 참고하시길 권합니다. pblab.tistory.com 이번에는 요분의 포스팅을 발견해 그래도 머리가 많이 아프기 전에 해결할 수 있었다 Dynamic Extensions 중 사용할 확장기능의 주석을 풀지 않았고... php-cgi 실행 명령도 조금 빠진 부분이 있었다 아 그리고 이건 또 다른 얘기 같은데 mysql까지 연결하고 나서 비밀.. 이전 1 2 3 다음