[우리 FISA] 클라우드 서비스 개발 - 10주차 회고

이승준·2025년 3월 16일

회고록

목록 보기
10/21
post-thumbnail

이번주 한줄 요약

자소서 자소서 자소서 자소서 자소서를 쓰느라 사이드 프로젝트도 스톱하고 수업도 집중못했지만, 그래도 이번주를 되돌아 보고싶었다!




Spring Boot 시작!

이번주부터 뭔가 본격적으로 스프링부트를 학습한 기분이였다. 내가 모르는 부분이 시작되어서 그런지 아무튼 학습 내용도 간략히 복습해보겠다. 이번주는 AOP (Aspect-Oriented Programming) 및 Proxy 패턴에 대해 학습했다.


AOP (Aspect-Oriented Programming)란?

AOP는 관점 지향 프로그래밍으로, 프로그램의 핵심 로직과 부가적인 기능(로깅, 보안, 트랜잭션 관리 등)을 분리하는 기법이다.

  • 프로젝트를 진행할 때 ExceptionAdvice로 에러를 한 곳에서 처리한 적 있었는데 그땐 그냥 이게 뭔지도 몰랐는데 이번주에 학습하면서 아 그게 이거구나 싶어서 신기했다.

횡단 관심사 (Cross-cutting Concern)

  • 여러 모듈에서 공통으로 사용되지만, 핵심 로직과는 별개인 기능(예: 로깅, 인증, 트랜잭션 관리 등).
  • AOP는 이러한 횡단 관심사를 분리해서 유지보수의 용이하도록 설계할 수 있게 도와준다.
  • AOP의 기본 용어
  • Aspect: 횡단 관심사를 모듈화한 것.
  • Join Point: Aspect가 적용될 수 있는 지점 (예: 메서드 실행, 예외 발생 등).
  • Advice: Join Point에서 실행될 코드 (예: Before, After, Around).
  • Pointcut: 어떤 Join Point에서 Advice가 실행될지를 결정하는 규칙.





Proxy 패턴이란?

Proxy 패턴은 대리 객체(Proxy)를 통해 실제 객체(Real Subject)에 접근하는 디자인 패턴이다.
Proxy 패턴을 사용하면 실제 객체에 바로 접근을 제어하는것이 아니라, 프록시 객체를 먼저 거쳐서 요청을 처리하는 코드 패턴이다. 사용하는 이유는 다양하지만 추가적인 기능(캐싱, 로깅, 권한 검사 등)을 삽입할 수 있고, 실제 객체에 민감한 정보를 포함되어 있다면 권한을 검증하거나 실제 객체에 입력되기전에 데이터의 유효성을 검증한다거나하는 과정을 대리로 수행하는등의 이유가 있다.

처음엔 이게 뭔 말인지 이해 못했다..

주요 개념

  1. Proxy 패턴의 종류

    • 가상 프록시 (Virtual Proxy): 비용이 큰 객체 생성을 지연(예: 이미지 로딩).
    • 보호 프록시 (Protection Proxy): 접근 제어를 수행(예: 사용자 권한 검증).
    • 캐싱 프록시 (Caching Proxy): 동일한 요청이 반복될 경우 결과를 캐싱.
  2. 프록시 패턴과 데코레이터 패턴의 차이

    • 프록시 패턴: 원본 객체에 대한 접근을 제어하는 역할.
    • 데코레이터 패턴: 원본 객체에 새로운 기능을 동적으로 추가하는 역할.





동적 프록시와 Reflection

동적 프록시 (Dynamic Proxy)컴파일 시점이 아니라 런타임 시점에 프록시 객체를 생성하는 기법이다.

Java의 Reflection API과 커스텀 어노테이션을 활용해 의존성 주입을 시뮬레이션 해보는 팀프로젝트를 진행했었다.

옆자리인 예진이와 찬진님과 함께 팀이 되었다~ 특별히 어려울것 없이 수행했다.

import java.lang.reflect.Field;

public class DependencyInjector {
	public static void injectDependencies(Object bookRepository) {
		Class<?> clazz = bookRepository.getClass();
		for (Field field : clazz.getDeclaredFields()) {
			if (field.isAnnotationPresent(Inject.class)) {
				try {
					field.setAccessible(true); 
					Object dependency = field.getType().getDeclaredConstructor().newInstance(); 
					field.set(bookRepository, dependency);
				} catch (Exception e) {
					throw new RuntimeException("Failed to inject dependencies", e);
				}
			}
		}
	}
}
  • Refelection API를 통해서 bookRepository의 클래스 정보를 가져오고. 이를 이용해서 해당 클래스의 선언되어 있는 필드들 중 @inject가 붙어있는 필드 정보만 사용한다.
  • 어노테이션이 붙어 있는 필드에 접근 권한을 열어주고, 필드의 타입에 맞는 인스턴스를 생성하고 생성한 객체(dependency)를 필드(bookRepository의 해당 필드)에 주입하는 방식으로 구현했다.
  • 뭔가 가상 프록시를 사용해서 실제 메서드를 호출하는 시점에 의존성이 주입되도록 하고 싶었는데, 시간이 없어서 다음을 기약했다. 꼭 해봐야겠다!





쏟아지는 공채

봄이 왔고, 공채 시즌이 돌아온것을 체감했다. 아무리 시즌이라지만 이번주안에 이 기업들을 지원해야 한다니 너무 가옥하다. 이 정도면 기업들끼리 짜고 공채 내는게 아닐까? 다른 기업 못쓰게하려고,,

암튼 예상보다 더 바쁘게 살게 된 나는 당황을 금치못하고 어쩔줄 몰라했다. 나는 내 성향상 모든 기업에 난사하는것보다 그래도 관심있는 기업에 집중해서 내 맘에드는 서류를 쓰고 싶어서 강사님께 이 고민을 털어놨었는데 그냥 다 쓰라고 하신다. 하고있는건 모두 스탑하고 공채에 집중하라고 하셔서 프로젝트를 잠시 중단하기로 하고 공채에 집중했다.

수요일부터 가고 싶었던 은행의 자소서를 썼는데, 하 이게 계속 마음에 안들고 갈피가 안잡혀서 금요일까지 1번문항도 완성하지 못했다. 너무 스트레스 받고 답답한 마음에 강사님께 방향성을 조언받았는데 정말 운이 좋게도 강사님이 해당 은행의 다니는 지인을 소개해주셨다. 목마른 사람이 우물 판다고 천운이라고 생각한다 정말





무참한 피드백과 함께 자소서는 쓰레기통행

솔직히, 오래 고민하기도 했고 기업 분석도 정말 열심히 했다고 생각해서 나름의 좋은 평가를 주실거라고 생각했다. 하지만, 정말 민망할정도의 피드백을 받았고 전화까지 달라고 하시면서 어떤 점이 아쉽고 어떻게 접근해야할지 도와주셨다.

이 전화를 통해 느낀건 내 생각보다 더 철저히 준비해야하겠구나 그리고 수많은 사람들 속에 나만의 차별성을 지원서에 담아야겠다 라는생각이 들었다. 그리고 이정도로 열정적으로 도와주실지 몰랐기에 살짝 당황하기도 했다.

정말 정말 감사한점이 한 두가지가 아니지만, 무엇보다도 주말 시간을 모두 할애해서 나의 자소서를 봐주셨다. 늦은 시간에 연락드려도 바로 피드백 주시고 10분동안 연락이 안되면 전화달라고 하셨다. 처음에는 죄송한 마음에 질문하기를 머뭇거렸지만 피드백을 받고 나아진 모습과 이 기회를 놓치고 싶지 않는 마음에 정말 열심히 질문하고 수정했다.

이 지원서를 첨삭받고 완성하느라 다른 기업에 지원은 하지 못하게 되었지만, 정말 느낀게 많다. 내가 얼마나 부족했는지 그리고 내가 좋아라 하는 기업분석을 나열하는게 얼마나 무쓸모한 행위였는지 그리고 나만의 스토리를 어떻게 연결해야 차별성있는 자소서가 되는지등을 배웠고, 특정 부분은 직접 예시를 적어주셨는데 아 현직자는 다르다고 느꼈다. 표현을 조금 바꿨는데 뭔가 감성을 자극하는 글처럼 보이는게 신기했다.

물론, 멘토님이 굉장히 열정적인만큼 나도 대충할 수 없기에, 주말 모든시간을 갈아넣었다. 밥먹는 시간도 아껴가며 작성했고 칭찬을 들을때면 날아갈것 같았다. 이번 봄의 설레임은 다 느낀듯 좀 다르려나? 암튼 뭐

지원서를 제출하고 감사한 마음을 어떻게 전해야할지 너무 고민이 됐다. 멘토님의 위시리스트를 보니까 초콜릿이 많이 보이길래 초코 케이크 세트를 선물했다 ㅋㅋㅋ 별거 아니지만 멘토님에게도 좋은 기억으로 남았으면 하는 마음에 작은 성의를 보였다. 당분간 JTBC 구내식당을 애용할 것 같다.





마무리

굉장히 바빴지만 또 그 안에서 고마운 분도 많고 즐거운 기억도 많이 생겼던 한 주 같네요~ 이 글 읽는 모든 사람들이 합격하고 파이팅 할 수 있기를 !

profile
들은것은 잊어버린다 본것은 기억된다 해본것은 내것이 된다

0개의 댓글