전체 글497 GitLab Runner로 이미지를 빌드하고 CodeBuild로 EKS에 배포하기: 파이프라인 설계 정리 소스는 GitLab에 있고 배포 대상은 AWS EKS인 환경에서, GitLab Runner를 처음 써 보며 배포 파이프라인을 설계했습니다. 이 글은 구현 전 단계의 설계 정리입니다. GitLab과 AWS 공식 문서로 확인한 내용을 기준으로 썼고, 실행해 보지 않은 부분은 그렇다고 적었습니다.요구사항배포 대상은 AWS 계정 하나에 있는 EKS다.백엔드는 저장소 하나에 app이 여러 개라서 app 하나만 배포하는 경우와 전체를 배포하는 경우가 모두 필요하다. 프론트엔드와 모바일 웹은 app이 하나씩이다.이미지 빌드 과정과, 빌드에서 배포로 넘어가는 과정을 GitLab 화면에서 볼 수 있어야 한다.EKS에 apply하는 일은 AWS CodeBuild가 맡는다.전체 흐름app 저장소 (backend / fron.. 2026. 11. 10. AI 골리앗의 시대 AI가 글로벌하게 도입 가능해지면서 규모있는 개발을 대기업만 가능하던 시대에서 여러 기업들도 가능한 시대가 되었다고 느낍니다.하지만 기술의 발전이 모두에게 이로운 것은 아니며, 변화에 적응하는 속도에 따라 기업과 개인의 격차가 더 커질 수 있다고 생각합니다.AI가 전 세계적으로 보급되면서 과거에는 많은 인력과 자본을 가진 대기업에 유리했던 규모 있는 개발과 서비스 구현에, 이제는 작은 기업이나 소수 인원도 도전할 수 있는 시대가 되었다고 느꼈습니다.AI를 활용하면 개인과 조직이 가진 자원의 한계를 어느 정도 줄일 수 있다는 점에서, 영상 속 '메카 골리앗'이라는 표현이 인상 깊었습니다.변화에 적응하는 것은 필요하지만, 끊임없이 새로운 성과를 추구하는 것만이 발전의 방향은 아니라고 생각합니다. AI Age.. 2026. 11. 10. JVM 메모리 구조 정리: 힙, 스택, 그리고 힙 밖 메모리 기준 문서: The Java Virtual Machine Specification, Java SE 17 (이하 "명세"), The java Command (JDK 17), HotSpot GC Tuning Guide (JDK 17)1. 분류 기준JVM 메모리 영역은 두 가지 기준으로 나눠 보면 정리된다.누가 쓰는가: 스레드마다 따로 생기는 영역 / 모든 스레드가 공유하는 영역어디서 정의하는가: 명세가 정한 논리적 영역 / 실제 구현체(HotSpot)가 쓰는 힙 밖 메모리명세 2.5. Run-Time Data Areas 첫 문단도 이렇게 나눈다. 일부 영역은 JVM 시작 시 만들어져 종료 시까지 유지되고, 일부는 스레드마다 만들어져 스레드가 끝나면 사라진다.2. 스레드마다 생기는 영역2.1. pc 레지스터 .. 2026. 10. 12. A 레코드와 CNAME 차이 A 레코드: 이름 → IPv4 주소를 직접 지정.a.domain.net. A 1.2.3.4CNAME(정규 이름, Canonical Name): 이름 → 다른 이름으로 위임. 조회 측이 그 이름을 한 번 더 조회해서 최종 주소를 얻습니다.a.domain.net. CNAME origin.domain.net.실무 기준 선택:최종 주소가 고정 IP면 A 레코드.뒤쪽이 로드밸런서나 CDN(콘텐츠 전송망)처럼 IP가 바뀔 수 있으면 CNAME. IP가 바뀌어도 레코드를 고칠 필요가 없습니다.CNAME 제약 두 가지:같은 이름에 다른 레코드를 같이 둘 수 없습니다(MX, TXT 등과 공존 불가).도메인 최상위(domain.net 자체)에는 쓸 수 없습니다. 여기는 A 레코드나 각 DNS 업체의 대체 기능(AL.. 2026. 9. 1. [프론트] SPA(Single Page Application) 프론트엔드가 SPA(Single Page Application, 단일 페이지 애플리케이션)로 구성된다는 것은 웹 애플리케이션에 필요한 모든 정적 리소스를 최초 접근 시 한 번만 다운로드하고, 이후에는 페이지 새로고침 없이 필요한 데이터만 비동기(AJAX)로 가져와 화면을 갱신하는 방식을 의미합니다. 전통적인 멀티 페이지 애플리케이션(MPA)과 달리, 앱(App)과 유사한 부드러운 사용자 경험을 제공하여 모던 웹 개발의 주류 패러다임으로 자리 잡았습니다. 1. SPA의 주요 특징 및 장점빠른 사용자 경험(UX): 화면 전환 시 서버에서 HTML을 새로 받아오지 않고 화면의 일부분만 DOM 구조를 통해 교체하므로 네이티브 앱과 유사한 빠른 상호작용이 가능합니다.서버 부하 감소: 웹 페이지 전체를 렌더링하는 .. 2026. 2. 12. [프론트] 프론트 서버(BFF/SSR) 1. BFF (Backend for Frontend)BFF는 특정 프론트엔드(웹, 모바일 앱, 데스크톱 등)에 최적화된 맞춤형 백엔드 서버를 의미합니다. 배경: 마이크로서비스 아키텍처(MSA)에서 프론트엔드가 여러 백엔드 API를 직접 호출하면 데이터 가공이 복잡하고 비효율적인 문제를 해결하기 위해 등장했습니다.역할:데이터 통합 및 가공: 여러 마이크로서비스에서 데이터를 가져와 화면에 맞게 정리(API 오케스트레이션)하여 전달.프론트 친화적 API: 프론트엔드 개발자가 원하는 구조의 API 제공.보안/인증: 프론트엔드-백엔드 사이의 인증 로직, CORS 정책 등을 처리하여 클라이언트 사이드 보안 강화.장점: 프론트엔드의 비즈니스 로직 복잡성 감소, 클라이언트별 최적화된 데이터 제공, API 변화에 대한 .. 2026. 2. 12. [AWS] aws cli에서 사용하기 좋은 명령 # EC2 ssm 연결가능한지 확인 aws ssm describe-instance-information \ --region ap-northeast-2 \ --filters Key=InstanceIds,Values= ### InstanceInformationList: [] 이런식으로나오면 ssm연결불가능함 # 인스턴스에서 ssm agent 띄우는법 sudo dnf install -y amazon-ssm-agent sudo systemctl enable amazon-ssm-agent sudo systemctl start amazon-ssm-agent # 이 인스턴스가 있는 VPC / Subnet / SG / IAM Instance Profile 확인 aws ec2 describe-instances.. 2026. 2. 10. [Webflux] 이해하기, webflux는 무엇인가? WebFlux로 “외부 HTTP 호출 → 응답 수신”을 할 때스레드를 잡아두지 않고(Non-blocking), 데이터가 도착하는 이벤트에 반응해서 다음 단계로 흘려보내는 파이프라인으로 동작한다.이 구조로 대기 기간이 없는 Nonblocking 방식의 통신을 지원한다.Webflux 구성요소를 정리해보면 다음과 같다.호출 주체: WebClient반환 타입: Mono / Flux (응답을 담는 그릇)외부 응답을 “값”으로 받는 게 아니라 “스트림”으로 받는다.Mono: 응답 0~1개 (보통 단건 응답)Flux: 응답 여러 개 (SSE/스트리밍/페이지 분할 등)요청 구성에 필요한 것 준비(1) URL / QueryParam.uri("https://...") 또는 .uri(uriBuilder -> uriBuild.. 2025. 12. 23. [HTML] CSRF 가 무엇? 1. CSRF(Cross-Site Request Forgery)가 무엇인가?“유저의 브라우저를 속여서, 유저가 의도하지 않은 요청을 서버로 보내게 만드는 공격”예시로 이해해보자사용자가 A사이트(admin.example.com)에 로그인했음→ 브라우저에는 JSESSIONID 같은 쿠키가 저장됨사용자가 악성 사이트 B를 방문그 사이트가 숨겨진 HTML을 자동 제출함: form action="https://admin.example.com/user/delete" method="POST"> input type="hidden" name="userId" value="100"> form> script>document.forms[0].submit();script> 4. 브라우저는 자동으로 쿠키(JSESSIONID).. 2025. 12. 10. 이전 1 2 3 4 ··· 56 다음