목록- (95)
olrlobt
난 내가 내 꿈의 근처라도 가보고는 죽어야지 싶더라고- 빈지노 Always Awake 중 - 내가 가장 좋아하는 노래의 일부분이다.왜 갑자기 뜬금없이 이런 걸 알려주냐고? 취업했거든 😆 그래서 오늘은 취업준비를 위해 내가 했던 것들, 그간 고생한 것들을 모두 청산하려 한다.길고도 험했던 취업준비생시절(불과 8시간 전..) 어떻게 준비했고, 뭐가 힘들었고... 회고라 쓰고 푸념하는 거다. 이 글이 이걸 보는 다른 취준생들의 동기부여가 되었으면 좋겠고,나 또한 나 자신을 돌아보는 시간을 갖으려 한다. 그리고 간간히 써오던 회고록들 다 돌아봤는데, 그때 감정도 느껴지고 재밌더라.이래서 사람들이 일기를 쓰나 싶다. 어쨌든,SSAFY 10기 수료... 그리고 그 이후싸피는 길지만 정말 순식간에 지나갔다.어느..
포트폴리오용 프로젝트를 진행하면서 인증인가 부분은 가장 기피되는 역할 중 하나라 생각한다. 오류가 가장 많이 발생하는 부분이며, 시큐리티를 적용하는 과정 또한 만만치 않은 것이 주된 원인이라 생각한다.나도 수많은 프로젝트를 진행했지만 인증인가를 맡아본 경험은 없었다. 딱히 기피한 건 아니고.. 더 하고 싶은 부분이 있었을 뿐이지만...어쨌든 이번에 좋은 기회가 생겨서 인증인가 부분을 맡게 되었는데, 그간 인증인가를 맡은 친구들이 왜 하나같이 화를 냈는지 이해가 갈 수밖에 없었다. 항상 개발에는 정답이 없다고 수도 없이 들어왔지만, 관습처럼 써 오던 부분은 어느샌가 정답이 되어 고민도 안 하고 사용하고 있었는데, 이 인증인가 부분은 정말로 정답이 없었다. 수많은 보안적인 고민을 해야 하며, 어떤 방법으로 ..
Prometheus란?Prometheus는 애플리케이션의 성능 모니터링과 경고 알림을 위해 널리 사용되는 오픈소스 시스템으로, 특히 시계열 데이터(Time Series Data) 수집과 분석에 특화된 툴이다. 시계열 데이터는 특정 시간에 기록된 메트릭 값을 기반으로 시간의 흐름에 따라 변화하는 데이터를 추적하고 저장하는 방식이다. 이러한 방식은 시스템 성능을 모니터링하고, 문제 발생 시 그 원인을 파악하는 데 유용하다. Prometheus는 특히 클라우드 네이티브 환경과 분산 시스템에서 널리 사용되며, 안정적이고 확장 가능한 모니터링 솔루션을 제공한다. 다양한 플랫폼에서 손쉽게 통합할 수 있으며, 애플리케이션의 리소스 사용률, 요청 처리 시간, 데이터베이스 성능 등 중요한 메트릭을 실시간으로 수집하고 분..
비동기 프로그래밍비동기 프로그래밍은 작업을 병렬로 실행하여 CPU의 효율을 극대화하고, 응답 시간을 줄이기 위해 중요한 기법이다. 특히 네트워크 요청, 파일 I/O, 데이터베이스 쿼리와 같이 시간이 오래 걸리는 작업을 처리할 때 유용하다. 비동기 프로그래밍을 사용하면 한 작업이 완료되기를 기다리지 않고 다른 작업을 병행해서 수행할 수 있어 애플리케이션 성능을 향상시킬 수 있다. 자바에서는 Thread, Runnable, Future 등을 사용해 비동기 작업을 처리할 수 있지만, 기존 방법들은 다소 복잡하거나 제한적일 수 있다. FutureFuture는 Java 5에서 처음 도입된 인터페이스로, 비동기 작업의 결과를 나타내는 객체이다. 현재 실행 중인 작업이 완료될 때까지 기다리지 않고, 미래의 어느 시..
Object pooling (오브젝트 풀링)Object pooling은 자주 사용되는 객체를 미리 생성하고 재사용하여 메모리 할당 및 해제의 오버헤드를 줄이는 기술이다. Java와 같은 언어에서는 객체를 빈번하게 생성하고 폐기하는 작업이 성능에 큰 영향을 미칠 수 있다. 특히 복잡한 객체나 자주 호출되는 객체가 있는 경우, 이러한 작업은 GC(Garbage Collection)에 많은 부하를 줄 수 있으며, 이는 전체 시스템 성능에 악영향을 미치게 된다. 이때 Object pooling을 사용하면 자주 사용하는 객체들을 미리 만들어 두고 필요할 때 재활용할 수 있다. 객체를 새로 생성하는 대신, 풀(pool)에서 기존 객체를 가져와 사용한 후 다시 반납하는 방식으로 동작한다. 이를 통해 메모리 할당 비용..
SSAFY를 진행하면서 개인 프로젝트로, Github README에 블로그 포스팅을 SVG 이미지 박스 형태로 띄워주는 위젯을 개발했었다. 적극적으로 홍보해서 사용자를 늘리고 싶은 마음은 있었지만, 아직 완성도가 낮다고 판단하여 그런 행동을 취하지는 않았었다. 그리고 SSAFY가 끝나고, 취업 준비를 하면서 바쁜 와중에 시간을 조금씩 투자하여 개선을 해보려고 한다. [토이 프로젝트] 블로그를 깃허브에 효과적으로 노출시키는 방법많은 개발자들의 고민 나는 깃허브 리드미에 내 블로그를 홍보하기 위해 링크를 해 놓곤 한다. 하지만, 이 전의 내 깃허브 리드미에는 아래와 같이 a 태그를 이용한 조촐한 이미지 링크만 띄워olrlobt.tistory.com GitHub - olrlobt/blog-widget: Gi..
전략 패턴(Strategy Pattern)과 팩토리 패턴(Factory Pattern), 레지스트리 패턴(Registry Pattern)은 객체지향 설계에서 자주 사용되는 디자인 패턴이다. 해당 패턴 모두 객체 생성 및 행위 관련 문제를 해결하는데 도움을 주는데, 전략 패턴과 팩토리 패턴, 레지스트리 패턴을 결합하여 사용하는 경우 장점을 극대화하고, 더 유연하고 확장 가능한 시스템을 만들 수 있다. 오늘이 이 패턴들을 정리하면서, 개인 프로젝트에 어떻게 적용하였는지 알아보자. 전략 패턴(Strategy Pattern)전략 패턴(Strategy Pattern)은 객체지향 디자인 패턴 중 하나로, 실행 중에 알고리즘을 선택할 수 있게 하는 행위 소프트웨어 디자인 패턴이다. 이 패턴은 동일한 문제를 해결하..
SSAFY 2학기 공통 프로젝트에서 INFRA를 맡았었다. 처음 해보는 인프라였기에 개발서버와 운영서버를 분리할 생각조차 하지 못했고, 프로젝트를 진행하면서 프론트 API 연결작업을 할 때는 운영서버의 API를 가져와 사용했다. 그러다 보니, 배포 과정에서 Downtime이 생기게 되어 서버가 재실행되는 동안 FE에서 API 연결 작업을 할 수 없는 불편함을 느꼈다. 이후, 개발서버 분리와 무중단 배포에 대해서 알게 되었고, 개인적으로 도전하고 싶어서 자율 프로젝트 때 팀원들에게 이 부분은 꼭 내가 하고 싶다고 말했었다. 이번 포스팅에서는 무중단 배포에 대해 알아보고, 자율 프로젝트에서 어떤 식으로 구현했는지 정리해 본다.다운타임 (Downtime)서버가 올라가는 동안 API 호출이 불가능한 상태를 일..