전체 글124 OpenAI 12월 11일 대규모 장애 발생 이슈 리포트 ???? 뭐? ChatGPT 안들어가진다고?F*** UP! 내 완벽한 업무 메이트인 gpt가 출근을 하지 않았다. 그 일로부터 며칠 후, OpenAPI에서 해당 이슈에 대한 리포트를 작성했다는 소식을 보았다. 지금 공부하고 있는 쿠버네티스와 관련된 이슈라는 소식에 흥분감을 감추지 못하고 원문을 말끔히 번역하여 정리해보겠다.API, ChatGPT & Sora Facing IssuesIncident Report for OpenAI API, ChatGPT & Sora Facing Issues status.openai.com2024년 12월 11일 OpenAI의 모든 서비스가 작동을 중지하였다. 본 글은 해당 사고에 대한 검시(post-mortem)이다. 이번 문제는 OpenAI가 도입한 새로운 Telemetr.. IT 생태계 2024. 12. 18. K-L1VERSE의 EDD 도입기 K-L1VERSE의 EDD 도입 이야기안녕하세요, K-L1VERSE의 Aiden입니다. K-L1VERSE에 큰 변곡점이 생겼서 다시 블로그로 찾아오게 되었습니다. 몇 가지 마일스톤을 헤쳐나갔는데요. 오늘은 크게 세 가지 골자에서 포스팅을 남겨볼까 합니다.1. EDD블로그를 구독하신 분이라면 몇 달 전 올라왔던 우아한 형제들의 기술블로그 스터디 포스팅을 기억하실 겁니다.이유도 없이 해당 포스팅을 준비한 것은 아니었습니다. K-L1VERSE에 EDD를 도입하기 위한 사전 공부느낌이었는데, 그래서 그런지 우아한 형제들의 포스팅과 유사한 내용이 많이 섞여 있습니다.2. AWS SQS & SNS우아한 형제들이 MQ로 활용했던 AWS의 클라우딩 서비스, SQS와 SNS도 K-L1VERSE에 도입하기에 좋은 장치였습.. K-L1VERSE 2024. 12. 13. Spring-projects에 내 지문을 남겨버리기 조금 특별한 경험을 했다… 😆😆얼마 전에 Spring batch의 wiki 문서인 “Spring Batch 5.0 Migration Guide”을 읽다가 오탈자를 발견했었다.Up until version 4.3, the @EnableBatchProcessing annotation exposed a tranasaction manager bean in the application context. While this was convenient in many cases, the unconditional exposure of a tranasaction manager could interfere with a user-defined transaction manager.눈썰미가 좋은 사람은 바로 보일 것이다. tr.. 오픈 소스 2024. 12. 4. 24년 11월 월간 회고 2024년도 이제 12월, 한 달만 남았다. 한 해를 마무리해가고 있는 지금 ‘11월의 내 모습은 어땠을까, 2024년의 유종의 미를 거두고 있는가’라는 의문을 해소하고자 이번달도 빠지지 않고 회고를 남긴다.Keep업무는 순항중qTrustNet의 모든 화면 개발을 마무리하였다. 스스로 디자인까지 하고 프론트엔드 구현, 백엔드까지 다소 작업 영역이 넓지만 꾸준히 흥미를 잃지 않고 진행하고 있다. 현재는 v1의 모든 화면 개발을 완성하였다. 이제 주로 백엔드 작업으로 12월을 보낼 것 같다.프로세스를 꼼꼼하게 설계하거나 에러 상황을 정의하는 것 등에 아직 익숙하지 않은 부분도 많지만 이 정도 꾸준함이라면 충분히 극복할 수 있을 것으로 보인다.“꾸준하게” 해보자.K-L1VERSE 새단장 중케이리버스의 자잘한 .. 회고/정기회고 2024. 12. 3. [이슈 로그] 리액트 애플리케이션 백그라운드 실행 리액트 애플리케이션을 백그라운드로 실행하기 위해 아래 커맨드를 입력했다.$ yarn dev --host 0.0.0.0 --mode production & 정상적으로 실행될 것이라는 기대와 다르게 에러가 발생한다.[5]+ Stopped (tty input) yarn dev --host 0.0.0.0 --mode production원인이 무엇일까?React 개발 서버(yarn dev)는 실행 중 터미널 입력을 필요로 하지만 이를 백그라운드에서 실행시켰으므로 터미널 입력을 처리하지 못하고 동작을 멈춘 것이다. 따라서 이는 TTY 입력 문제로 React 개발 서버는 백그라운드 실행 시에도 TTY 입력을 기본적으로 기다리는 특징을 이해해야 한다.해결은 nohup해결을 위해 nohup을 사용한다. n.. 개발일기/이슈 로그 2024. 12. 2. K8S Pod와 Deployment 간단 이해 “쿠버네티스에서 배포할 수 있는 가장 작은 컴퓨터 오브젝트인 Pod와 이를 실행하는데 도움이 되는 고수준 추상화” = 쿠버네티스 워크로드쿠버네티스의 워크로드는 클러스터에서 실행되는 애플리케이션과 서비스를 나타낸다. 이는 컨테이너화된 애플리케이션을 배포, 관리 및 확장하기 위해 정의된 객체들로 구성된다. 워크로드의 주요 유형은 아래와 같다.Pod : 하나 이상의 컨테이너를 포함하는 쿠버네티스의 가장 작은 배포 단위Deployment : 무중단 배포와 롤백을 관리하며, 애플리케이션을 선언적으로 배포StatefulSet : 상태를 가진 애플리케이션을 관리하며, 안정적인 네트워크 ID를 제공DaemonSet : 각 노드에서 실행되는 워크로드를 관리Job & CronJob : 일회성 또는 주기성을 띄는 작업을 수.. 개발일기/K8S 2024. 11. 28. [이슈 로그] 네트워크 이슈 + 'yarn dev --host 0.0.0.0' 진짜 별거 아닌 이슈 로그이다. 근데 2시간 동안 삽질해서 한번 정리해본다. 상황현재 사내 온프렘 서버로 바로 접근해서 작업하지 않고 router에 접근해서 작업하고 있다. router로 요청을 보내면 자동으로 라우팅된 요청이 내가 사용하는 서버로 가는 구조이다. 192.168.y.y 에 단순히 yarn dev로 react 애플리케이션을 실행했다. 그리고 라우터의 8051번 포트를 vite 애플리케이션이 사용하는 5173번 포트로 포트포워딩 해두었다.결과는? 아니 내 네트워크 지식으론 이론상 완벽한데? 라고 생각했지만 문제는 네트워크 연결이 아니라 yarn dev에 있었다.yarn dev 기본설정대부분의 경우, 개발 서버는 localhost(또는 127.0.0.1)에서만 실행된다. 이는 개발 서버가 로컬.. 개발일기/이슈 로그 2024. 11. 22. K-L1VERSE의 AWS S3 전략 안녕하세요. 케이리버스의 Aiden입니다. 현재 케이리버스는 여러 가지 변곡점을 준비하고 있습니다. 눈에 보이는 화면은 크게 달라지지 않지만, 운영 효율화와 관련된 네 가지 거대한 마일스톤을 정리하고 있습니다.서버 이벤트 주도 아키텍처 도입인프라 구조 변경(K8S의 도입)AWS Lambda를 활용한 웹 크롤러 구축Github action과 argoCD를 이용한 CI/CD 자동화각각의 항목들이 하루아침에 이루어지는 작업이 아니지만 꾸준히 진행하여 2025년 K-리그의 시작 일정에 맞게 1, 2, 3번 마일스톤을 내년 3월까지 마무리하려고 합니다. 너무 덩치가 큰 마일스톤들을 해치워야 하다 보니 케이리버스의 소식을 전달해드리는 간격이 조금씩 멀어지고 있네요…😭😢오늘은 그런 의미로 아직 케이리버스는 살아있.. K-L1VERSE 2024. 11. 22. API versioning 방법론 세상에 완벽한 소프트웨어는 존재하지 않는다.애플리케이션은 요구 사항이 변경될 때마다 새로운 버전을 릴리즈합니다. 이때, 다양한 버전을 동시에 사용하는 유저들의 안정적인 활동을 보장하기 위해서 backend engineer는 하나의 API에서 다양한 버전을 관리해야 할 때가 있습니다. 이번에는 Spring과 Kotlin 환경을 기준으로 API version을 관리하는 몇 가지 방법론을 제시해보겠습니다.들어가기 앞서 대부분의 문제가 그렇듯, 정답이란 없습니다. 본인의 팀 상황에 맞는 방법을 선택하시되 중요한 것은 팀 전체가 하나처럼 움직이는, 모든 코드가 공통성을 가지는 “일관성”이지 않을까 싶습니다.API 버전 관리 전략1. URL Versioning가장 대중적으로 알려진 방식이다. 접근 방법도 단순하다... 개발일기/Spring 2024. 11. 20. Spring security Architecture 애플리케이션 개발자가 모든 보안 및 인증 관련 사항을 하나하나 구현하고 신경을 쓰기엔 현실적으로 시간과 자원이 많이 든다. 이에 스프링은 하위 라이브러리로 스프링 기반 애플리케이션의 보안(인증, 권한, 인가)을 담당하는 Spring security를 개발하여 애플리케이션 개발자들에게 편의를 제공한다.다만, 보안에 관련된 개발 특성상 코드 변화가 잦고 버전마다 차이가 있을 수 있으므로 레퍼런스는 공식 docs에서 얻는것이 가장 확실한 방법이다.아래 블로그 본문은 Spring Security의 6.3.4 버전 공식 docs를 필자의 생각과 함께 재구성하였다.Spring Security “사용”하기Security를 “사용”만 하는 방법은 정말 간단하다.@EnableWebSecurity@Configuration.. 개발일기/Spring 2024. 11. 12. 알고리즘에서 이벤트 기반 접근 오늘은 특정 문제의 풀이를 가져오진 않았다. 주말에 Moloco 코딩테스트를 보다가 뼈아프게 실수한 게 있어서 복기의 목적으로 문제를 정리해본다. 몰로코 코딩 테스트는 4문제 70분으로 주어진다. 난이도는 전반적으로 쉬운 편이다. 백준 기준으로 실버 1~5 수준의 문제가 나오는데 복잡한 알고리즘과 자료구조를 묻기보다 빠른 문제 해결 능력을 물어보는 유형이 나온다.결국 한 문제를 시간 내에 풀지 못하고 제출했다. 시험이 끝나고 곰곰이 생각해보니 분명히 풀었던 유형이었다. 코드트리의 "코드트리 오마카세"가 정확히 이런 유형이었다.구간의 변화를 이벤트로 관리코드시그널 문제를 구체적으로 밝힐 수는 없지만 코드트리 오마카세와 못 풀었던 문제의 유형을 일반화한다면 "구간의 변화를 이벤트로 관리"한다는 점이다. 이때.. 알고리즘 2024. 11. 11. [Spring batch] meta data table을 public이 아닌 다른 schema에 생성 실행환경Spring batch는 버전마다 편차가 심하다. 본 포스팅의 실행 환경을 반드시 확인하자.Spring boot: 3.3.5Spring batch: 5.1.2RDBMS: postgreSQLSpring batch meta data table 수동 설정스프링 배치는 그 실행과 관리를 위해 Job, Step, JobParameter 등의 정보를 주로 데이터베이스에 저장하고 관리한다. Spring batch는 DB에 저장된 batch관련 정보들을 활용하여 작업 재실행, 중단 후 재시작, 상태 추적 등의 기능을 효과적으로 지원하게 된다.Spring batch는 데이터의 스키마를 RDBMS의 종류에 맞게 정의해두었고 application.yml에서 설정을 통해 이 schema를 생성하는 sql 스크립트를 자.. 개발일기/Spring 2024. 11. 7. 이전 1 2 3 4 ··· 11 다음