728x90
반응형

전체 글 209

[CS]권한마다 보안 솔루션이 다르다면? 하이브리드 환경에서 우아하게 파일 보호하기

시간이 좀 흘렀지만 작년 말 사내 기술블로그에 투고한 글을 드디어 블로그에 남겨본다.백오피스를 주로 담당하면서 파일 보호 및 암호화와 관련 레거시 솔루션을 (나름 업계에서는 유명하다고 하는...) 모던 솔루션으로 전환하면서 고민한 내용을 담고 있다. 어떻게 보면 기본적인 패턴과 방식일 수도 있겠지만 누군가에게는 도움이 되지 않을까하여 주제로 다뤄보았다. 레거시 솔루션과 하이브리드로 동작해야하는 환경이었는데 레거시 솔루션이 mac 환경에서는 동작하지 않아서 애를 좀 먹었던 일과 솔루션 전환 과정에서 QA 엔지니어 분들과 밤 늦게까지 수십개의 화면이 정상적으로 동작하는 지 테스트했던 과정들이 기억에 남는다. 누군가에게는 도움이 되기를 바라며...https://oliveyoung.tech/2025-12-26/..

CS 2026.07.07

[AI] #1: Harness Engineering

지금껏 Claude를 사용해서 개발을 해오면서도 claude가 어느 단계에서 어떤 Agent를 호출해서 사용하는지, 혹은 어떻게 Agent나 Skill을 구성해야하는 지에 대한 생각을 깊게 해오지 않았다.정말 아무것도 모를 때에는 Claude.md 파일에 모든 내용과 지침을 때려넣는 것도 해봤으니 말 다했다. Claude를 '잘' 사용할 수 있게 되면 클로드가 MCP를 직접 호출하거나 Agent가 다른 Agent를 호출해서 여러 역할을 동시에 수행하게 하는 등의 일도 가능하고, 퇴근 시간에도 스스로 계속해서 일을 하는 노예(?)를 만들어 놓을 수도 있다. 이제는 프롬프트를 잘 쓰는 것 뿐만 아니라, "AI가 스스로 일할 작업환경을 얼마나 잘 설계해두는가"가 중요하게 되었다.이 작업환경을 설계해두는 개념..

AI 2026.06.01

[Spring boot] @ModelAttribute에 대한 이해

들어가며일반적으로 Spring boot에서 Get방식(혹은 쿼리파라미터가 필요한) 요청을 받을 때 사용되는 어노테이션에는 @RequestParam, @PathVariable, @ModelAttribute가 있다.파라미터의 개수가 적은 경우에는 앞의 두개 어노테이션으로 충분하지만 파라미터가 많아질 수록 객체로 요청을 받는게 가독성 측면에도 관리 측면에도 수월해지기 때문에 @ModelAttribute를 사용한다. 종종 @ModelAttribute를 사용하면서 헷갈리거나 잊어버리는 개념이 있어 이번 포스팅에서는 @ModelAttribute 어노테이션에 대해 공부해보고자 한다! @ModelAttribute사용 이유요청을 받을 때 다음과 같이 파라미터의 개수가 적다면 @RequestParam 어노테이션으로도 무..

Spring boot 2024.01.20

[Spring boot] WebClient 사용해보기 - 비동기 통신 subscribe()

들어가며WebClient는 RestTemplate의 대안으로서 급부상된 WebFlux의 라이브러리이다. Spring MVC에서도 지원하는 WebClient는 RestTemplate과 비교했을 때 가장 큰 장점이 `비동기 통신을 지원한다`는 점이 아닐까 싶다. 물론 그 외에도 함수형 프로그래밍 스타일을 지원한다는 점, 다양한 설정과 에러처리를 지원한다는 점 등도 장점으로 꼽을 수 있겠다. WebClient의 최대 장점인 비동기 통신을 지금까지 사용하기 어렵고 쓸 데가 없다는 이유만으로 동기 방식을 고수해왔었는데 이번 회사 프로젝트를 하면서 비동기 통신이 필요해진 시점이 생겼다. 이번 기회에 WebClient의 비동기 통신을 구현해보았고 이번 포스팅의 주제로 삼아보고자 한다. 처음 비동기 통신을 구현해보았..

Spring boot 2023.11.11

[ChatGPT] OpenAi API 사용해보기 - 프롬프트 엔지니어링

들어가며이미 많은 개발자들이 알고, 사용해보고 있을 ChatGPT. Open AI에서 만든 ChatGPT는 API로도 사용이 가능하다.모델마다 토큰 당 가격에 일부 차이가 있지만 단순한 프로젝트에 적용하기에는 부담되는 비용이 아니기 때문에 사이드프로젝트에 도입을 해보면 좋을 것 같다는 생각이 들어 간단하게 사용법을 작성해보고자 한다. 자세한 내용은 OpenAI의 ChatGPT API Docs를 참고하도록 하자 ChatGPT API Docs OpenAI PlatformExplore developer resources, tutorials, API docs, and dynamic examples to get the most out of OpenAI's platform.platform.openai.comChat..

Study/Etc 2023.10.21

[Spring boot] SSH 터널링 구현하기

들어가며 회사에서 개발 중인 서비스가 통신하기 위한 서버가 특정 서버에서만 접근 가능한 상황이었다. 백그라운드에서 동작하는 (유저가 접근하지 않아도 되는) 어플리케이션은 그 특정 서버에 서비스를 띄워서 서로 통신이 가능한 방식을 사용하고 있었지만 개발 중인 서비스가 동작 중인 서버는 별도의 서버로 분리가 되어있었고, 이 서버는 정책상 특정 서버에서 인바운드가 막혀있는 상태였다. 조금 복잡한데 아무튼 개발 중 서비스 -> 타겟 서버로의 직접 접근이 안된다는 말이다. 이 문제를 해결하기 위해서는 타겟 서버로의 접속을 우회하는 방식을 사용해야하는데 이걸 SSH 터널링이라고 한다. 이번에는 SSH 터널링의 개념과 필요성, 구현 예시에 대해 작성해보고자 한다. SSH (Secure Shell) 시큐어 셸(Secu..

Spring boot 2023.10.13

[Spring boot] WebClient 사용해보기 - 모듈화 1-2

들어가며 2023.08.25 - [Study/Spring boot] - [Spring boot] WebClient 사용해보기 2-1 이전글에서는 내가 어떻게 웹클라이언트를 사용하고 있는 지에 대해 간단하게 설명했다. 이번 글에서는 코드를 하나씩 보면서 내가 짠 코드가 어떻게 작동하는 지에 대해 설명해보고자 한다. 지난 글에서 위의 그림과 같이 메서드 체이닝 방식을 직접 구현했었다. 위의 그림 순서에 따라서 차근차근 코드를 보자. ApiWebClientBuilder @Component @RequiredArgsConstructor public class ApiWebClientBuilder { private final WebClient.Builder webClientBuilder; // 체이닝 시작점 publ..

Spring boot 2023.08.26

[Spring boot] WebClient 사용해보기 - 모듈화 1-1

들어가며 무려 1년도 더 된 이전글이 항상 내 블로그 인기글 1위인걸 볼 때마다 마음에 걸렸다. 막 개발 공부하기 시작했을 즈음 webClient에 대한 자료가 별로 없어서 정리할 겸 작성했던 글인데 관련 키워드로 검색하면 저 글이 뜨는 걸 보고... 새롭게 알게된 내용들을 조금 더 추가하고, 현재는 어떻게 사용하고 있는 지에 대해 정리를 해보고자 한다. 기본 개념이나 RestTemplate과의 차이점 등등은 공식문서나 구글에 검색하면 깔끔하게 정리된 자료가 많기에 넘어가기로 하고, 내가 사용하면서 알게 된 개념들만 적어내려가보겠다! WebClient 최종적으로 완성될 구조는 위와 같다. 각 step 이 뭐고 어떻게 사용하는 지는 천천히 설명하기로 하겠다. 이 구조를 사용하면 아래와 같이 코드를 사용할 ..

Spring boot 2023.08.25

[Intellij] 인텔리제이 TODO 코드태그(Code Tag) 커스텀

들어가며 개발을 하다보면 사진처럼 주석을 하이라이팅 하거나 한눈에 모아보고 싶은 경우가 있다. Intellij에서 제공하는 테마를 살짝 손봐서 주석 색상을 변경하는 방법도 있고, Javadoc 주석(/** content */)을 사용는 방법도 있 지만 Intellij 자체에서 주석을 모아보는 TODO 기능이 존재한다. 오늘은 Intellij에서 제공하는 TODO 코드 태그(Code Tag)기능을 알아보자! TODO 기능 사용하기 기본 사용법 TODO 기능의 사용방법은 간단하다. 주석 코드와 함께 대문자로 TODO를 입력하면 자동으로 주석이 하이라이팅이 된다. (!) 이때 TODO와 작성하고자하는 내용은 한칸의 공백(space)가 있어야 한다. 이렇게 멀티라인으로도 사용할 수 있다! 멀티라인 TODO는 T..

Study/Etc 2023.01.24

[후기] 항해99 수료 후기 - 항해99 과정 및 솔직 후기

항해99에 승선한 5월부터 8월까지. 총 99일 +a간의 여정이 막을 내렸다.미니 프로젝트부터 알고리즘, 주특기, 실전프로젝트까지 다사다난했던 지난 날들을 회고하며 항해의 끝과 앞으로의 개발자로서의 여정의 첫 문장을 이렇게 시작하고 싶다. 전직 호텔리어가 개발자로 전직하게 된 썰 푼다 호텔리어가 개발자를 한다고?국내 5성급 호텔에 취업해서 일을 하다가 갑자기 개발자가 되기로 마음을 먹었을 때, 사실 주위의 반대는 없었다. 어렸을 때부터 기계를 다루길 좋아했고, 취미가 여행경비 엑셀에 정리하기였기 때문이다. 코딩을 접하게 된 계기는 사소했다. 떠오르는 IT 시대에 발맞춰 학교에서 코딩 교양을 열어줬고, 흥미가 생겨 수업을 듣게 되었다.교양에서 사용한 프로그램은 스크래치였는데, 블럭 몇 개 가지고 고양이..

Review 2022.08.18
728x90
반응형