본문 바로가기

분류 전체보기35

Copypaste 토이 프로젝트 중간 회고 (1) tl;dr제일 하단에 내용을 요약해둔 KPT를 작성해두었다.여러 팀 프로젝트를 진행하면서 백엔드 개발과 데브옵스를 구성한 경험이 있으나 실제로 클라우드 서비스를 직접 활용해 본 경험은 없었고, 또 스스로 백엔드 개발에 기여했던 경험이 많이 부족하다고 생각했다. 그래서 이번 기회에 프로젝트를 제대로 개발해보고, 배포까지 수행해보기로 했다.설계 및 개발gist, pastebin과 같은 서비스를 만들어보기로 했다. 여기에 임베딩 기능, 코드 하이라이트 기능을 추가로 만들어보기로 결정했다.이미 privatebin, microbean과 같은 오픈소스가 존재하나, 임베드 기능을 제공하고 있지는 않아 만들어보기로 했다. 백엔드 개발백엔드 개발은 스프링부트를 활용해보기로 했다. 새로이 익히고 활용할 기능은 많이 없으나.. 2025. 6. 19.
Golang 기반 툴 개발부터 오픈소스에 기여하기까지 CLI에서 AI를 쓰고 싶다!평소처럼 AI에게 무언가를 물어보기 위해 브라우저를 키던 중, 문득 이 과정이 상당히 귀찮고 번거롭다는 생각이 들었습니다. 북마크를 여는 것도 귀찮고, 로딩 페이지를 기다리는 것도 꽤 길다고 느껴졌습니다. 물어보려는 내용이 간단한 질의라면 더더욱 그랬습니다. 간단한 질의는 빠르고 간편하게 물어보고 싶었고, 그래서 빠르게 키고 활용할 수 있는 CLI 환경에서 AI에게 질의할 수 있는 도구를 만들어보기로 결심했습니다. 왜 Golang을 선택했는가?우선 생산성이 높다는 말에 혹했습니다. go cli 도구를 활용해서 패키지를 관리하는 것이 꼭 npm, pip과 같았고, 퍼포먼스 또한 나쁘지 않다고 해서 끌렸습니다. 또한 고루틴을 통한 비동기 프로그래밍을 잘 지원한다고 하여서, 이번 .. 2025. 6. 13.
IoC Container와 생명주기를 알아보자 2025-06-13 스프링부트 컨텍스트 생성 순서 수정tl;drBeanFactory와 ApplicationContext가 IoC Container이다.ApplicationContext가 BeanFactory의 기능을 확장하고 있으며, 내부적으로 해당 인스턴스를 관리한다.아래에서는 상세한 설명, 그리고 컨텍스트의 생성 방식 등을 설명해두었다.BeanFactory와 ApplicationContextspring-framework의 코어 기능은 IoC Container이다. BeanFactory와 ApplicationContext 인터페이스를 기반으로 구현되어 있으며, ApplicationContext가 BeanFactory의 기능을 확장하고 있다. *ApplicationContext는 내부적으로 BeanFac.. 2025. 6. 11.
JPA의 MappedSuperclass와 Embeddable의 차이 및 사용법 tl;drMappedSuperclass는 부모 클래스에, Embeddable은 내부에 포함하는 클래스에 사용하면 된다.둘 다 하나의 테이블로 합쳐진다.MappedSuperclass상속할 부모 클래스에 주로 사용한다.아래 접은글에 자바 코드, 그리고 일대일 대응하는 SQL 코드를 작성해두었다.더보기@MappedSuperclasspublic static class Account { @Id private Long id; private String owner; private BigDecimal balance; private BigDecimal interestRate; //Getters and setters are omitted for brevity}@Entity(name = "DebitAccount")publi.. 2025. 5. 27.
rfc를 알아보자 Request For Comments, RFC는 인터넷 표준이 등재되는 곳이다. Internet Engineering Task Force, IETF가 인터넷 표준을 주로 등재하고 있다. 기존에 존재하는 문서를 임의로 삭제하거나 수정하는 것은 불가능하나, 새로운 문서를 통해 갱신(update) 또는 폐기(obsolete)할 수 있다. 이 경우, 각 문서들마다 갱신되었음, 또는 폐기되었음에 대한 정보가 추가된다. RFC 표준으로는 Internet Standard, Draft Standard, Proposed Standard 3가지로 이루어져 있다.Internet Standard는 반드시 지켜져야 하는 인터넷 표준을 가리킨다. TCP, HTTP/1.1 등이 대표적인 예시이다.Draft Standard는 어느 .. 2025. 5. 22.
스프링 프레임워크 `@Cacheable`을 알아보자 @Configuration 클래스에 @EnableCaching 어노테이션을 적용하면 캐싱이 가능하다. 메소드에 @Cacheable을 사용하면 해당 메소드에 캐싱이 적용되며, 같은 파라미터 입력에 대해 캐싱된 출력을 즉시 반환한다. @Cacheable 외에도 @CacheEvict, @CachePut, @Caching @CacheConfig 등의 어노테이션들이 존재한다. @Cacheable이 적용된 메소드에서 입력받은 파라미터는 KeyGenerator를 통해 SimpleKey를 생성하며, 이를 통해 캐싱한 데이터를 저장하고, 또 찾는다. 이 때, 객체의 hashCode 메소드와 equals 메소드를 사용한다. 파라미터의 어떤 속성을 기반으로 키를 생성할 것인지 설정할 수도 있다. 이 경우 SpEL을 활용한다.. 2025. 5. 13.