[TIL] Java, SpringBoot, Rest API

qoqo_mi·2025년 8월 21일

TIL

목록 보기
7/9

코딩 테스트 문제를 풀다가 정규화와 연관이 있다라는 로직의 흐름을 듣고 찾아본 정규화
LLM의 정규화를 알려면 트랜스포머에 대한 구조를 알아야 한다는 것을 알았다.

최소직사각형

LLM

층 정규화

정규화란 층의 출력값을 일정한 분포로 맞추어 학습을 안정화하는 역할을 한다.
보통 각 층의 출력을 평균 0, 분산 1로 맞추는 경우가 많고, 이로 인해 기울기 소실이나 폭주 문제를 완화시킬 수 있다.

배치 정규화

배치 정규화는 말 그래도 배치 단위로 정규화를 수행하는 것이다.
그러나 배치 정규화는 자연어 처리에는 적합하지 않다. 그 이유는 문장 길이의 다양성 때문이다.
문장 길이가 다른 것끼리 배치 정규화를 시행하게 된다면 어떤 배치에는 패딩 토큰이 들어가 평균과 분산이 왜곡될 수도 있고, 또 자연어 처리와 같은 문장 내 순서나 의존 관계가 중요한 데이터에 대해서는 이러한 방식이 올바르지 않다고 판단된다.

Java

AOP(Aspect Oriented Programming), 관점 지향 프로그래밍

  • 관점 지향 프로그래밍에서 한계를 보안하는 프로그래밍 패러다임
  • 공통 관심사(Aspect)를 모듈화하여 코드 중복을 줄이고 유지보수가 쉽도록 구현

Aspect

  • 로깅, 보안, 트랜젝션 등과 같이 흩어져 있는 부가 기능을 하나의 모듈로 캡슐화
public void 주문하기(String 상품명, int 수량) {
    // 주문 전 작업들
    System.out.println("주문 시작: " + 상품명);  // 로깅
    재고확인(상품명, 수량);  // 재고 체크
    
    // 진짜 비즈니스 로직
    주문생성(상품명, 수량);
    결제처리();
    재고차감();
    
    // 주문 후 작업들
    이메일발송(상품명);  // 이메일
    System.out.println("주문 완료: " + 상품명);  // 로깅
}
  1. 최근에는 전처리에 대한 부분에 관심이 많은 것 같다. 전처리를 어떻게 하냐에 따라 데이터 분석조차도 달라진다고 한다. 전처리 단계에서 나는 시간이 굉장히 많이 들고 있는데 다른 사람들은 척척 해내는 것을 보면 많이 부족함을 느낀다.

  2. JavaScript의 객체지향에 대해 관심을 가졌다보니 최근 Java에 대한 개념들을 살펴볼 때 반가운 친구들이 많다. 캡슐화,추상화를 왜 해야하는지를 더욱 깊게 이해하고 싶다면 Java를 공부해보는 것도 좋겠다 싶었다.(그래도 JavaScript가 재밌다는 게 함정)

  3. LLM은 알면 알수록 수학에 대한 지식이 많이 필요함을 느끼고 그에 반해 내가 알고 있는 개발이라는 영역은 새발의 피 정도. Chat GPT가 어떻게 이 세상에 태어났는지를 알게 될 때 정말 매력 있다 싶다.

  4. revenuecat-shipaton-2025이라는 해커톤을 알게 되었다. 참여할 생각에 마음이 두근 ☺️

참고 문서

트랜스포머 구조 파헤치기

0개의 댓글