Cursor AI 사용기
·
💭 경험&생각
필자는 본 글을 통해 처음으로 프론트엔드 개발을 수행하며, Cursor AI를 도구로 삼아 경험한 개발 과정과 그에 대한 사적인 생각을 정리하고자 한다. 이는 엄격한 형식에 얽매이지 않은, 일종의 사고 흐름 기반 기록이자, 생산성과 사고 전환에 대한 탐색적 글쓰기임을 밝히며 시작하고자 한다.프로젝트 단위 개발과 문서화의 부담기존 프로젝트 기반 개발은 필연적으로 많은 시간과 자원을 요구하는 구조였다. 프레임워크(React, Spring Boot 등)의 아키텍처나 컨벤션을 충분히 이해한 후에야 각자의 역할을 수행할 수 있었으며, 개발자 간 협업을 위해선 각종 컨벤션 문서를 명확히 정리하고, 그것을 공유하는 “문서화” 과정이 선행되어야 했다.이는 단지 기능을 구현하는 차원을 넘어, 설계와 협업의 기반을 마련하..
[AWS] 클라우드 아키텍처, 왜 복잡한 걸까?
·
백엔드 개발
들어가며“EC2 하나면 되지 않아?”라고 생각한 적이 있는가? 아마도 클라우드 서버를 처음 다뤘을 때 누구나 한 번쯤은 그렇게 느꼈을 것이다. 하지만 어느새 서비스가 성장하면서 트래픽이 급증하고, 배포 실수 한 번에 서비스가 멈추고, 보안 이슈가 현실이 되는 시점이 찾아온다.그제야 깨닫는다. 클라우드 설계는 단순히 서버 하나 띄우는 문제가 아닌, 복합적인 문제들에서 최선의 균형점을 찾는 행위이다.클라우드 설계란, 균형의 기술클라우드 인프라는 다양한 요소들의 조합이다. 그중 어떤 요소를 강조하느냐에 따라 완전히 다른 결과를 만든다.개발자 생산성: 빠르게 코딩하고 배포하는 환경은 시간과 비용을 절약한다. 특히 스타트업에서 중요하다.비용 최적화: 트래픽이 없을 땐 리소스를 줄이고, 있을 때만 확장되는 구조가 ..
[Spring Boot] HTTP 외부 Restful API를 RestTemplate로 처리하기
·
백엔드 개발
들어가며이전 시간에, Private EC2 환경에서 외부 API인, "네이버 로그인 API"를 호출할 수 있도록 구성했다.EC2 브라우저 -> 네이버 로그인 URL로 프록시 서버를 거쳐 리디렉션을 성공적으로 수행할 수 있었다.이번 시간에는 Private EC2에서 구동 중인 Spring Boot 서버가 외부 Restful API인, 네이버 로그인 API에 요청/응답을 보낼 수 있는 방법에 대해서 소개한다.로그인 성공 시 네이버 로그인 API 작동방식:미리보기클라이언트가 네이버 아이디, 비밀번호를 입력 후, 로그인을 성공적으로 수행했을 때, 네이버 API는 에 사전 등록된네이버 로그인 Callback URL로 인가코드:code, state 정보를 가지고 리디렉션을 수행한다.(code, state: 네이버 ..
[AWS] Private EC2에서 Oauth2.0 네이버 로그인 구현 ?!
·
백엔드 개발
들어가며Private EC2는 Private VPC Subnet 환경으로, 외부 인터넷 연결이 되지 않는다.이는, AWS Cloud에서, 가상 공간인 "VPC" 에서 Private Subnet을 구성하고, 내부에 공인 IP가 할당되지 않는 EC2 서버를 구축하는 방식이다. 외부 인터넷과 연결이 되지않고, AWS Cloud VPC 내부에만 생성되어 있는 Private EC2는 네이버 로그인 API와 같은 외부 API와 송신을 할 수 있을까? ? ?? ? 우리는 당연히, 이러한 의문점이 생긴다. 이번 포스팅은 이러한 의문점을 통쾌하게~ 해소되도록AWS Private EC2 아키텍처를 실제로 운영/관리하면서 네이버 로그인 API를 구현했던 과정들을 A부터 Z까지 설명한다.문제상황: 네이버 로그인 API 호출이..
[AWS] 스케줄러로 EC2 인스턴스 비용 절약하기
·
백엔드 개발
여는 글클라우드 인프라를 운영할 때 가장 중요한 요소 중 하나는 바로 "비용관리"이다.특히 AWS EC2 인스턴스처럼 사용량에 따라 과금되는 서비스는, 어떤 설정과 운영 방식을 선택하느냐에 따라 매달 지출이 크게 달라진다. 아래는 EC2 인스턴스의 한달 비용을 정리했다.t2.small$0.023/시간월간 예상 비용$16.79한달 서버를 중단없이 배포했을 때 비용이 $16.79이다. (한화 약, 24,429원) EC2 인스턴스는 시간당 과금 정책으로, 인스턴스 서버가 활성화된 시간 기준을 비용이 산정된다. 따라서 이번 포스팅에서는비활성화 시간대에는 인스턴스 서버가 다운되도록 설정해주는 AWS 스케줄러 서비스를 도입하여 비용절약하는 방법을 상세히 소개한다.1. Instance Scheduler 스택 설치 (..
[자료구조] 최적화의 기초, Big-O 시간복잡도
·
📚 스터디/알고리즘
여는 글개발자는 프로그래밍 언어를 이용해 사용자들이 편하게 이용할 수 있는 서비스 혹은 시스템을 개발하는 사람이다.이러한 서비스는 사용자의 "입력 데이터(Input)"를 받아, 내부에서 "적절한 연산 및 처리 (Processing)를 수행하고, 그 결과로 "출력 데이터(Output)를 제공하는 구조로 이루어진다. 이때 개발자는 "중간의 연산과정(Processing)"을 책임지는 사람이다. 예를 들어, 사용자의 요청이 언제, 어디서, 어떤 조건으로 주어지든지 간에, 그 상황에 맞는 정확하고 빠른 처리 로직을 만들어내는 것이 개발자의 역할인 것이다. 개발은 서비스업과 다르다.일반적인 서비스업은 고객을 직접 대면하지만, 개발자는 사용자와 직접 마주치지 않는다. 대신, 사용자가 마주하는 것은 바로 개발자가 만든..
[Chat GPT] 탐구보다, 실행이 중요해진 시기
·
📚 스터디/인공지능
생성형 AI, 2022년 Chat GPT가 불러온 여파는 전세계적으로 이슈가 되었다. 3년이라는 시간이 흘러 지금은 일상생활 속 생성형 AI는비즈니스 서비스에 적용되어 우리의 일상에 자연스럽게 스며들기 시작하고 있다.필자도, Chat GPT를 적극적으로 사용한 시기는 2024년 말 군대 전역 후 였다. 아직까지는 AI가 일반 대중적인 사람들까지 직접적으로와닿는 서비스는 아니라고 생각한다. (아마, 전 인구 중 체감상 20% 정도 AI를 사용해 효용을 쌓고 있는 것 같다.) GPT가 지니고 있는 잠재적 기술은 아직 대중들에게 잘 알려지지 않은 것 같다.지난 6개월 간 GPT를 사용해 백엔드 개발직군으로 프로젝트를 참여했다. 필자는 스프링 부트 언어를 사용했고, 스프링 부트의 전반적인 이해도는 아예 없었다...
[CI/CD] self-hosted runner 기반 EC2 자동화 배포 구축하기
·
백엔드 개발
[CI/CD] AWS EC2 자동화 배포 파이프라인 구축하기실무환경에선 소프트웨어 개발(Development)과 ""운영(Operation)""이 결합되어있다.쉽게말해, 효율적이고 "지속 가능한" 소프트웨어 제공을 목표로 한다.(기업이 시장에서 생존하기 위해선,실적을 높ceo-uk22.tistory.com여는글프로젝트 초기에는 빠른 개발과 배포에 집중하기 위해, CI/CD 파이프라인을 AWS CodeDeploy 기반으로 구성했었다.빌드된 애플리케이션을 Docker 이미지로 변환하고,ECR 업로드 후 S3에 저장된 배포 스크립트를 토대로 EC2에 배포하는 구조였다.아래는 deploy.yml 스크립트 동작 요약이다.1. Spring Boot 애플리케이션 빌드  2. Docker 이미지 변환  3. ECR 업..
[DevOps 실무] 프로젝트 관리 효율을 2배 높이는 폴더 정리법
·
백엔드 개발
이번 주 팔로업에서 정말 중요한 인사이트 하나를 얻었다.바로, 너무 당연하게 여겨왔던 폴더 정리 방식에 대한 근본적인 재고이다. 기존 문서 정리 방식그동안 팔로업을 진행할 때마다, 노션 내에 새 페이지를 만들고 팔로업 당시의 핵심 내용을 페이지 제목에 워딩한 뒤, 그 아래에 어젠다 상세 내용들을 순차적으로 기록해왔었다.처음에는 나쁘지 않았다. 하지만 시간이 지나며 팔로업이 쌓이기 시작하자 문제가 드러났다. 문제점 발견팔로업마다 어젠다와 논의 흐름이 달라지기 때문에, 페이지 간의 연결성과 흐름이 유기적으로 이어지지 않다는 걸 발견했다.기록은 분명히 남기고 있었지만, 그 기록들이 결국 ‘프로젝트의 방향성과 목적성’을 담지 못하는 상황에 이르렀다.결과적으로 팔로업 문서는 점점 기억의 스냅샷이 되었고, 운영적으..
[AWS] 서버 보안 : 팀원의 EC2 접근, 어떻게 열어줘야 할까?
·
백엔드 개발
AWS에서 프라이빗 서브넷에 EC2를 배포하고 Bastion Host를 통해 관리자가 SSH 접속하는 구조는 보안성과 실용성 면에서 굉장히 유리하다.하지만 실무에서는 혼자만 접속하는 게 아니라, 팀원 혹은 다른 개발자와도 EC2를 함께 사용해야 하는 상황이 생긴다."팀원이 내 EC2에 접속하려고 하는데, PEM 키는 공유해도 되는 걸까?"답은 절대 아니다. 이번 글에서는 개발자에게 받은 Public Key를 활용해 별도의 EC2 사용자 계정(backend-dev)을 만들고, Bastion Host를 통해 접속할 수 있도록 구성하는 과정을 소개한다.왜 PEM 키를 공유하면 안될까?PEM 키는 EC2 인스턴스의 루트 권한에 해당하는 키로, 이를 공유하는 건 비밀번호를 공유하는 것보다 더 위험하다.1. 접속자..