분류 전체보기79 CI/CD 잦은 배포에 대한 불안감 떨쳐내기 불안감 떨쳐내기 두 번째 이야기입니다. 첫 번째 불안감 떨쳐내기의 방법으로 테스트코드 작성과 Spock 테스트 프레임워크(https://include-hoany.tistory.com/79)에 대해 이야기 했었습니다. 오늘 저의 불안감을 떨쳐내게 해 준 두 번째 방법에 대해 이야기해보려 합니다. 요즘은 워낙 CI/CD 자동화가 잘되어있기에 백엔드 프로젝트도 그렇고 프론트 프로젝트도 그렇고 하루에 여러 번 배포를 하기도 합니다. 다만 한정된 시간 내에 기능을 개발하고 단위테스트, QA 테스트 까지 한다고 해도 우리가 생각지 못한 엣지케이스들이 있을 수 있다는 불안감은 늘 항상 존재했었습니다. 또 알파, 베타 환경과는 다른 운영서버에서 발생할 수 있는 엣지케이스들도 있죠.. 그러면 모든 인스턴스들의 로그를 보.. 2025. 10. 21. 시작은 대충 해보기 "회고문화 도입" 요즘은 매뉴얼이 잘 정리된 프레임워크나 라이브러리를 활용하는 개발 업무의 경우 AI 덕분에 진입 장벽이 현저히 낮아진 느낌입니다. 단순히 코드를 작성하는 것을 넘어 각 기술의 이점과 트레이드오프를 판단하는 컴퓨터 기초 지식 그리고 문제를 해결하는 데 필요한 소프트웨어 공학이 더욱 개발자에게 중요해지는 것 같습니다. 이러한 흐름에 발맞춰 회고 문화가 전무했던 저희 회사에 회고 문화를 도입했던 경험을 공유하고자 합니다. 회고문화가 없던 회사에 회고문화를 도입해야겠다고 생각했던 부분은 개발을 담당하는 팀, 기획을 담당하는 팀, 사업을 담당하는 팀들 간에 사일로 현상이 보였기 때문입니다. 팀 간의 소통이 너무 부족해 보였기에 서로 이야기할 수 있는 하나의 통로로 회고를 진행해야겠다는 생각이 들었습니다. 시작은 .. 2025. 10. 11. Spring Boot Thread Pool이 부족하게 된다면 어떤일이 일어날까. 요즘 엄무를 진행하며 Chat Gpt에게 자주 물어보는 주제는 기술을 사용하면서 주의해야 할 점에 대한 내용이 대부분인 것 같습니다. 오늘의 주제 또한 이러한 질문으로 시작하게 되었습니다. import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;import java.util.concurrent.Executor;@EnableAsync@Configurationpublic class ThreadPoolConfig { @Bean(name .. 2025. 8. 11. Ollama 프라이빗 네트워크 환경 에서 LLM 구축 사용해보기 오늘은 간단하게 프라이빗 환경에서 회사문서나 개인적인 문서들을 AI LLM모델에 업로드하고 해당 문서들을 기반으로 질의하면 너무나 좋을것 같다는 궁금증에 로컬 프라이빗 LLM구축을 시도를 해보았습니다! 제가 이번에 사용한 솔루션들은 다음과 같습니다. Ollama, Llama3.1, Open Web Ui Ollama는 다양한 오픈소스 LLM을 간단하게 실행하고 관리할 수 있게 도와줍니다. Llama 3.1은 우리가 너무나 잘 알고있는 Meta 페이스북에서 개발한 언어모델입니다. Llama 3.1은 제가 자주 방문하는 커뮤니티에서 입소문이 자자하기도 하고 혹여나 보안적인 정보들을 학습시켜도 괜찮은 신뢰도가 있는 프로젝트로 시도해 보았습니다. 제가 LLM을 구동하는 하드웨어는 맥북 M2 16gb ram 모델로.. 2025. 5. 11. PostMan으로 GraphQL요청 하기 오늘은 GraphQL개발을 진행하며 요청과 응답을 클라이언트 관점에서 확인해 볼 수 있도록 PostMan을 활용하여 서버로 요청을 보내는 법을 공유해 보도록 하겠습니다.RestApi를 개발해오며 정말 많이 사용한 PostMan입니다. 예전에 PostMan으로 gRPC요청도 해보았는데 PostMan으로 GraphQL요청 또한 손쉽게 가능합니다.요청할 서버는 localhost:8080 로컬환경입니다. GraphQL은 한개의 엔드포인트만 갖기에 graphql로 요청을 보낼 수 있도록 설정합니다. 또한 GraphQL은 본질적으로 HTTP 프로토콜 이기 때문에 GET, POST를 설정할 수 있습니다. 다만 일반적으로 GET요청에 대한 한계가 있기 때문에 대부분 GraphQL 요청은 POST로 처리합니다. 이 부분.. 2025. 5. 6. Spring Framework에서 복잡한 비즈니스 로직 구조화하기 Filter Chain 오늘은 스프링 프레임워크에서 복잡한 비즈니스 로직을 구조화해 본 경험을 이야기 해보려고 합니다.제가 실제로 해결하고자 했던 비즈니스를 기반으로 설명하면 좋겠지만 아무래도 보안상 문제가 있을 수 있어 배달 어플에서 사용 가능한 쿠폰 목록을 고객에게 안내하는 비즈니스 도메인이 가장 적절하다고 생각하여 해당 도메인으로 설명을 해보도록 하겠습니다. 우리가 해결하고자 하는 비즈니스 도메인은 다음과 같습니다.1. 고객이 보유한 쿠폰 목록 중 주문에 사용 가능한 쿠폰 목록을 보여준다.2. 사용가능한 쿠폰에 대한 정의는 다음과 같습니다.- 고객이 보유한 쿠폰중 사용기한이 만료되지 않은 쿠폰- 고객이 보유한 쿠폰중 전체 브랜드 또는 주문하고자 하는 가게 브랜드에 적용이 가능한 쿠폰- 고객이 보유한 쿠폰중 전체 지역 또는.. 2025. 4. 20. 이전 1 2 3 4 ··· 14 다음