[항해99 취업리부트 WIL] 6주차
·
스케쥴/스터디
리팩토링 및 CI/CD 최적화1. 개요지난 2주 동안, 시스템 리팩토링과 CI/CD(Continuous Integration/Continuous Deployment) 최적화 작업에 중점을 두고 다양한 기술과 방법을 학습하고 적용하였습니다. 주요 학습 내용은 시스템 성능 향상, 코드 유지보수성 개선, 이벤트 기반 아키텍처 도입, 데이터 무결성 보장, 그리고 CI/CD 파이프라인 구축을 포함합니다.2. 주요 리팩토링 작업2.1 ReserveRequest 리팩토링배경: 결제 생성 요청 로직이 Reservation 엔티티에 포함되어 있어 단일 책임 원칙(SRP)에 위배되었습니다.변경 내용: 결제 생성 요청 로직을 Reservation에서 ReserveRequest로 이동하였습니다.기존: 결제 생성 로직이 Res..
[항해99 취업리부트 WIL] 5주차
·
스케쥴/스터디
Week In Learning (WIL) - 지난 두 주간의 학습 정리 주간 학습 목표: 지난 두 주 동안 MySQL 데이터베이스 설정, Docker를 활용한 개발 환경 구성, Spring Security와 JWT 인증, 이메일 인증 구현, 그리고 사용자 마이페이지 및 비밀번호 수정 기능을 학습했습니다. 첫째 주: MySQL 데이터베이스 설정:     Docker Compose를 활용한 MySQL 컨테이너 설정.     docker-compose.yml, Dockerfile, my.cnf, 초기화 스크립트 등을 통해 MySQL 환경 구성. 문제 해결:     Base64..
[항해99 취업리부트 TIL] 4주차 4일
·
스케쥴/스터디
오늘 학습한 내용은 무엇인가요?적어도 대부분의 배수문제 요약: 주어진 정수 배열에서 세 수의 조합을 생성하고, 이 조합들 중 최소 공배수를 계산하여 가장 작은 최소 공배수를 찾는 문제입니다.해결 방법 요약:입력 처리:버퍼에서 입력을 읽어와 정수 배열로 변환합니다.조합의 크기 계산:조합 공식인 ( N! / ((N-R)! \times R!) )를 사용하여 조합의 크기를 계산합니다.조합 생성:세 수의 모든 조합을 생성하고 배열에 저장합니다.최소 공배수 계산:생성된 각 조합에 대해 최소 공배수를 계산하고, 결과를 배열에 저장합니다.최소값 찾기:최소 공배수 배열에서 가장 작은 값을 찾아 출력합니다.public class Main { public static void main(String[] args) thr..
[백준] 문어 - 21313번
·
여러가지/알고리즘 & 자료구조
문어  1 초1024 MB1673112998366.780%문제 문어에게 여덟개의 팔이 있다는 사실은 잘 알려져 있다. 하지만 문어들이 자신의 팔들을 1번, 2번, 3번, ..., 8번이라고 부른다는 말은 오늘 처음 들었을 것이다! 단, 시계방향으로 오름차순이라던가 하는 규칙은 없다. (물론 그러한 문어도 존재할 수 있다.) 문제에선 편의상 팔 대신 손이라고 부르자.문어들은 정월 대보름을 맞아 강강술래를 하려고 한다. 각 문어는 양 옆의 서로 다른 두 문어와 손을 맞잡아 원을 만든다. 문어끼리 손을 잡을 때 지켜야 할 예절이 있다.서로 같은 번호의 손을 잡아야 한다.한 문어와 둘 이상의 손을 잡을 수 없다.한 손으로 여러 문어의 손을 잡을 수 없다.모든 문어들은 예의바르기 때문에 예절을 항상 따른다.강강술..
[백준] 쉽게푸는문제 - 1292번
·
여러가지/알고리즘 & 자료구조
느낀점메모리 효율성:수열을 미리 생성하지 않고 필요한 부분만 계산하는 방식은 메모리를 효율적으로 사용합니다. 이는 특히 메모리 제한이 있는 환경에서 유용할 수 있습니다.코드 간결성:수열 생성과 구간 합 계산을 동시에 수행하는 접근 방식은 코드가 더 간결하고 이해하기 쉬운 구조를 제공합니다.시간 효율성:수열을 미리 생성하는 방식은 특정 상황에서 더 빠르게 구간 합을 계산할 수 있지만, 수열 생성 자체에 많은 시간이 소요될 수 있습니다.메모리를 덜 사용하는 방식은 시간 복잡도가 더 높을 수 있습니다. 특히 입력 크기 B가 클 경우 성능에 영향을 미칠 수 있습니다.문제 요구 사항과 실제 성능:두 방식 모두 문제의 요구 사항을 만족하며, 실제 실행 시간과 메모리 사용량도 문제의 제한 내에 있습니다. 그러나 메모..
[백준] 적어도 대부분의 배수 - 1145번
·
여러가지/알고리즘 & 자료구조
느낀점코드 개선의 중요성:코드 개선을 통해 가독성과 효율성을 높일 수 있어 좋았습니다. 시간 복잡도를 유지하면서도 코드의 구조를 개선하여 더 나은 성능과 유지보수성을 확보할 수 있음을 느꼇습니다..스트림 API의 강력함:Java 스트림 API를 활용하여 복잡한 계산을 간결하고 직관적으로 표현할 수 있음을 다시 한 번 느꼈습니다. 스트림 API는 코드의 가독성을 크게 향상시킬 수 있는 강력한 도구입니다.모듈화와 함수 분리의 중요성:함수 분리와 모듈화를 통해 코드의 재사용성과 유지보수성을 높일 수 있음을 확인했습니다. 각 함수가 하나의 역할을 담당하도록 함으로써 코드의 복잡성을 줄이고, 필요한 경우 쉽게 수정할 수 있었습니다.효율적인 메모리 사용:메모리 사용 최적화를 통해 코드의 성능을 개선할 수 있음을 배..
[트러블슈팅] EC2 재시동 후 iptable 맵핑 정보 사라지는 현상 해결
·
여러가지/오류
EC2 재시동 후 iptable 맵핑 정보 사라지는 현상 해결개요 AWS EC2 인스턴스에서 포트 80으로 들어오는 HTTP 요청을 포트 8080으로 리다이렉트하는 작업 중 발생한 문제와 그 해결 과정을 다룹니다. 또한, 인스턴스 재시작 후 iptables 규칙이 유지되도록 설정하는 방법을 포함합니다. 문제가 발생한 상황포트 80으로 들어오는 HTTP 요청을 포트 8080에서 실행 중인 애플리케이션으로 리다이렉트하려는 설정 작업 중, EC2 인스턴스를 중지하고 다시 시작한 후 iptables 규칙이 사라지는 문제가 발생했습니다. 이로 인해 리다이렉션 설정이 유지되지 않았습니다. 문제의 원인EC2 인스턴스를 중지하고 다시 시작하면 iptables의 규칙이 휘발성 메모리에 저장되기 때문에 사라집니다. 이는 ..
[트러블슈팅] 80포트 요청을 8080포트로 리다이렉션하기(feat. AWS)
·
여러가지/오류
포트 80에서 포트 8080으로의 리다이렉션 설정 느낀점이번 작업을 통해 여러 가지 중요한 교훈을 얻을 수 있었습니다.1. 네트워크 인터페이스 확인의 중요성:서버 환경에 따라 네트워크 인터페이스 이름이 다를 수 있으므로, 작업 전에 항상 활성화된 인터페이스를 확인해야 합니다. 이를 통해 불필요한 오류를 피하고, 설정 작업을 더 효율적으로 수행할 수 있습니다.2. 정확한 정보의 필요성:인터넷 블로그나 튜토리얼에서 제공하는 정보는 일반적인 환경을 기반으로 하기 때문에, 이를 맹목적으로 따르기보다는 자신의 환경에 맞게 수정하는 것이 필요합니다. 특히 네트워크 인터페이스와 관련된 정보는 서버마다 다를 수 있으므로, 정확한 정보를 바탕으로 설정을 진행해야 합니다.3. AWS 보안 그룹 설정의 중요성:AWS EC2..