밴드 플랫폼 서버 개발 일지 - LazyCodex 도입
·
개발 일기
최근 스레드에서 핫한 LazyCodex를 작업에 도입해보았다.작업 계획을 세우고, 실제 작업을 진행하니 서브에이전트끼리 구현하고이를 서로 검토하는 과정을 보고있자니 굉장히 신기하고 놀라웠다.이 글에서는 LazyCodex와 그 이전에 OmO, 에이전트 하네스를 간단히 알아보려 한다. 하네스란?Harness의 의미는 말에 장착해서 기수가 타서 말을 컨트롤할 수 있도록 하는 마구다.사람들이 번지점프나 레펠 등 몸에 장착하는 안전장치도 하네스라고 한다.AI에서도 인간이 AI 에이전트를 안전하고 예측 가능한 방식으로 작동하도록 설계한 구조 전체를 하네스라고 한다. AI의 작업 수행력이 나날이 늘어감에 따라, 인간의 작업 방식도 변화하고 있다.GPT가 처음 나왔을때는 문답이나 코드를 붙여넣으며 수정을 요청했고,프롬..
밴드 플랫폼 서버 개발 일지 - 스프링 시큐리티 세팅
·
spring
PR링크: https://github.com/l-lyun/band-platform/pull/11/changes [FEAT] Spring Security 기본 설정 by l-lyun · Pull Request #11 · l-lyun/band-platform#️⃣ 연관된 이슈 resolves: #4 📝 작업 내용 Spring Security 의존성 추가 및 중복 validation 의존성 정리 공개 API와 인증 필요 API 경로 분리 BCrypt 기반 PasswordEncoder Bean 추가 인증 실패 시 A01 공통 에러 응github.com 스프링 시큐리티에 대해 간단히나마 알아보려고 한다.너무나 방대한 내용이기 때문에 codex가 어떻게 구현했고, 그게 어떻게 적용되는지 우선적으로 알아보려한다.스..
DDD 그거 그렇게 하는거 아닌데 - 2024 우아콘
·
기술 아티클, 유튜브
https://www.youtube.com/watch?v=sLG5n_pXWK0&t=39s DDD 그렇게 하는 거 아닌데 — 완벽한 설계보다 중요한 것최근 우아콘의 「DDD 그렇게 하는 거 아닌데」 영상을 보면서 DDD에 대해 다시 생각하게 되었다.DDD라는 단어를 처음 들으면 흔히 이런 생각을 하게 된다.'처음부터 바운디드 컨텍스트를 잘 나눠야 하나?''도메인 모델을 완벽하게 설계해야 하나?' 나 역시 DDD를 처음 접했을 때는 객체지향 설계, 풍부한 도메인 모델, 엔티티 책임 분리 같은 코드 구조에 더 관심이 갔다.하지만 이번 영상을 보면서 느낀 것은, DDD는 단순히 코드를 예쁘게 짜는 방법이 아니라는 점이다. DDD는 결국 비즈니스 문제를 더 잘 이해하고, 그 복잡성을 소프트웨어 안에서 다루기 위한..
[Spring] 토비의 스프링 Vol.1 2장 - 테스트 (2)
·
spring
https://to-the-goal.tistory.com/20 [Spring] 토비의 스프링 Vol.1 2장 - 테스트 (1)2장을 시작하며 필자는 스프링의 가장 중요한 가치를 객체지향과 테스트라고 말하고 있다.앞서 1장에서 IoC/DI는 오브젝트의 설계, 생성, 관계, 사용에 관한 기술이며이를 쉽게 사용할 수 있게 해to-the-goal.tistory.com이어서 작성합니다. 2.3.5 테스트 코드 개선애플리케이션 코드만이 리팩토링 대상이 아니고, 테스트 코드 또한 언제든지 내부 구조와 설계를 개선해 더 깔끔하고 이해하기 쉽고, 변경이 용이한 코드를 만들 필요가 있다. @Before(JUnit5에서 @BeforeEach로 변경되었다.)@BeforeEachpublic void setup() { Appl..
[Spring] 토비의 스프링 Vol.1 2장 - 테스트 (1)
·
spring
2장을 시작하며 필자는 스프링의 가장 중요한 가치를 객체지향과 테스트라고 말하고 있다.앞서 1장에서 IoC/DI는 오브젝트의 설계, 생성, 관계, 사용에 관한 기술이며이를 쉽게 사용할 수 있게 해주는 것이 스프링이다. 스프링을 활용함에 있어 복잡한 서버 애플리케이션을 개발하는데 필요한 도구가 두 가지가 있다. 하나는 객체지향이며 하나는 테스트이다.애플리케이션은 계속 변하고 발전하고 복잡해진다. 개발자는 이에 유연하게 대응할 수 있어야한다.그 방법은 다음과 같다.1. 확장과 변화를 고려한 객체지향적 설계, 그에 대해 효과적으로 효과적으로 담아낼 수 있는 IoC/DI2. 테스트를 통해 코드에 확신을 가져 변화에 유연하게 대처할 수 있도록 따라서 테스트를 통해 다양한 기술을 활용하고, 이해하고, 검증하며 실전..
밴드 플랫폼 서버 개발 일지 - 공통 기반 세팅
·
개발 일기
PR 링크: https://github.com/l-lyun/band-platform/pull/10/changes#diff-ccb8ca74f50cfb13410ca2409faceef7fb57e0e6aab8ba5f4d529a05d80182bf 실제 기능 구현하기에 앞서 공통 응답, 에러 처리를 진행했다.공통 에러 응답 형식은 {status, code, message}로 진행했다.여태 협업 하며 코드별로 명확하게 에러 분기처리를 프론트에서 진행할 수 있었기에문서화만 잘 된다면 좋은 방법이라고 생각한다.public record ErrorResponse( int status, String code, String message) {}public enum Errorcode { private final String co..
[Spring] 토비의 스프링 Vol.1 1장 - 오브젝트와 의존관계 (2)
·
spring
1.4 제어의 역전(IoC)1.4.1 오브젝트 팩토리기존의 클라이언트였던 테스트 main() 메소드는 테스트 용도였지만,클라이언트 역할까지 맡아버려 오브젝트를 생성하고 관계를 맺어주는 역할까지 맡아버렸다.따라서 우리는 구현 클래스 오브젝트를 만들고 두 오브젝트를 연결해주는 역할을 분리해야한다. 팩토리- 객체의 생성 방법을 결정하고 만들어진 오브젝트를 돌려주는 것더보기public class DaoFactory { public IndependentUserDao userDao() { ConnectionMaker connectionMaker = new SimpleConnectionMaker(); IndependentUserDao userDao = new IndependentUserDao(connectionM..
밴드 플랫폼 서버 개발 일지 6/10 - 프로젝트 세팅
·
개발 일기
1. 프로젝트 세팅 - Codex와 친해지기Codex를 사용하는 이유는 가장 크게 카카오 요금제로 저렴하게 많은 토큰을 이용할 수 있어서이다.이 부분은 프로젝트 계속 진행하면서 여러 AI도 찾아보며 채워나가보려한다.Codex를 사용하며 구현하기에 앞서, https://www.youtube.com/watch?v=474wZZHoWN4이 영상을 보고 시작했다. AI를 사용함에 있어 학습하는 입장에서 거리낌이 있었으나,유튜브 영상을 보고 실제 사용해보니 AI를 원활히 사용하는 능력이 필요함을 깨닫게 되었다. 영상에서 가장 크게 와닿은 것은 영구 저장, 커스텀 스킬과 플러그인을 통한 자동화였다.'./~.codex/memories folder에서 너가 알고있는 것을 내가 이해하고싶어 파일도 보여줄래'라는 명령을 제..