본문 바로가기

분류 전체보기94

[회고록] 2024년, 대학교 3학년을 마무리하며 2024 목표는 얼마나 달성했나?2024년 목표는 거의 다 이뤘다. 알고리즘 공부를 꾸준히 해서 백준 플래티넘을 달성했고, KAUPC에서도 나름 좋은 성적을 거뒀다. OS, 네트워크, 보안, 데이터베이스 등 CS 전반적인 공부도 열심히 해서 전체 평점 4.25를 기록했다. 프로젝트도 정말 열심히 했지만, 지금 돌아보니 너무 급급하게 개발했던 것 같다. 1년 동안 스프링 프로젝트만 5개(UMC, Reborn, Kopis, Wish, VIS)를 진행했고, 현재는 두 개의 프로젝트를 이어서 하고 있다 보니 조금 과했던 것 같다. 그래도 다양한 기획에 참여하고, 여러 사람들과 소통하며 많은 이슈들을 다뤄본 덕에 값진 경험을 쌓을 수 있었다. 그 과정에서 어려움도 많았지만, 하나씩 해결하며 잘 헤쳐 나왔다. 현재.. 2025. 1. 1.
[Network] VM Network Options 1) NATNAT는 내부 네트워크의 여러 장치가 외부 네트워크와 통신할 때, 하나의 고정된 공용 IP 주소를 공유하여 사용하게 해주는 기술이다.  NAT 모드에서는 VirtualBox가 각 가상 머신(VM)을 위해 가상의 라우터를 생성하고, 이 가상의 라우터는 VM의 내부 IP 주소를 호스트 머신의 IP 주소로 변환하여 VM이 외부로 요청을 보낼 때 이를 처리한다. 즉, VM마다 각각의 가상의 라우터 존재한다.  또한, VM은 호스트의 네트워크로부터 격리되어 있으며, NAT 라우터를 통해 외부 네트워크에 대한 아웃바운드(요청 보내기) 접근만 가능하다. 즉, 인바운드는 불가능하다는 뜻이다. 2) NAT NetworkNAT Network는 VirtualBox에서 여러 VM이 하나의 공유 NAT 네트워크를 통.. 2024. 12. 30.
[Spring Boot] AOP로 로그 파일 생성 및 S3 업로드하기 AOP가 무엇인지 궁금하다면 아래 포스팅을 참고하자. https://persi0815.tistory.com/117 [Spring] AOP(Aspect-Oriented Programming)란?🌊 AOP란? Aspect-Oriented Programming, 관점 지향 프로그래밍소스 코드의 비즈니스 로직과 부가적인 공통 관심사를 분리하여, 관점을 기준으로 각각 모듈화하여 코드의 모듈성과 가독성을 향상시키는persi0815.tistory.com  Spring Boot에서 AOP를 사용하여 Log를 파일에 찍는 로직을 구현해보고, 트리거를 통해 해당 파일을 S3에 업로드 시켜보자!!* 로그가 발생할 때마다 바로 s3에 올리면 부하가 생길 수 있다고 판단해, 로컬 파일을 만들어서 해당 파일에 저장 후, 특정 .. 2024. 12. 14.
[Spring] AOP(Aspect-Oriented Programming)란? 🌊 AOP란? Aspect-Oriented Programming, 관점 지향 프로그래밍소스 코드의 비즈니스 로직과 부가적인 공통 관심사를 분리하여, 관점을 기준으로 각각 모듈화하여 코드의 모듈성과 가독성을 향상시키는 프로그래밍 패러다임.* ’관점’이라는 말이 너무 어색해서 알아봤더니, ‘초보 웹 개발자를 위한 스프링 5 프로그래밍 입문 158p’에서 ‘관점’이라는 말 대신 ‘기능’ 내지 ‘관심’이라고 표현하는 것이 더 알맞다고 한다.* 모듈화: 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것 즉, 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 Aspect로 모듈화하여 재사용성을 높여주는 기법이다. 핵심 기능과 공통 기능(흩어진 관심사)의 구현을 분리함으로써 핵심 기능을 구현한 코드의 수정 없.. 2024. 12. 14.