Projects 16

모듈 간 상호의존성에 대해

멀티모듈 프로젝트에서 모듈 간 상호 의존성 문제 해결하기멀티모듈 프로젝트를 처음 진행하면 예상치 못한 의존성 문제에 직면할 수 있다. 각 모듈이 독립적으로 동작하도록 설계해야 하지만, 기능을 구현하는 과정에서 특정 모듈에서 다른 모듈의 기능이 필요해지는 경우가 발생할 수 있다. 이번 글에서는 모듈 간 상호 의존성 문제가 발생한 사례와 이를 해결한 방법을 공유한다.문제 발생: Common 모듈에서 특정 테이블 접근 필요프로젝트를 멀티모듈 구조로 구성했지만, 진행 중에 일부 변경이 있었다. 개발이 진행될수록 기존에 예상하지 못했던 기능이 필요해지고, 이에 따라 설계 수정이 필요하게 되었다. 현재 구조는 다음과 같다. 이러한 구조에서 common 모듈이 특정 테이블에 접근해야 하는 상황이 발생했다. 예를 들..

2024년을 보내며 - 캡디, GDSC, 구름톤 유니브 (스압주의)

한해를 되돌아보는 시간을 갖는 김에 블로그도 다시 훑어보았다. 그런데 블로그를 시작한 이후로 회고를 제대로 작성한 적이 별로 없었다는 사실을 알았다. 그래서 조금 늦었지만 2024년을 되짚어볼 겸 회고를 남겨보고자 한다!  새해 시작은 항상 계획적이다2024년의 시작은 계획적이었다. 대학생으로 지내는 마지막 해이자 대학생으로 결과를 남길 수 있는 마지막 해다. 늦게나마 개발공부를 시작해서 더 계획적으로 무언가를 하고자 했다. 그래서 연초에 생각해내고 다짐한 것들은 많다. 그런데 정작 이룬 건 많지 않다. 용두사미란 말이 연상되는 순간이다. 그러나 지금 다시 생각해보면 그거라도 이룬 게 어딘가 싶다. 올해는 유독 힘에 겨운 일이 많았기 때문에 전부 그만두고 싶었다. 그래도 맡은 일은 반드시 해내야 한다는 ..

MySQL 컨테이너 한글 깨짐 현상 해결

개요11월 23~24일 무박 2일 동안 해커톤을 진행했다. 모든 문제를 해결하고 잠깐 멍한 상태로 쉬고 있었는데 갑자기 같은 팀원에게 배포 환경에서 MySQL을 확인해달라는 부탁을 받았다. 바로 정신차리고 알아보았는데, 한국어 데이터가 들어간 테이블을 조회해보니 전부 깨져서 '?'로 표시돼있었다. 이 때문에 API를 호출했을 때 한국어로 된 응답데이터가 전부 깨져있었던 것이다.  원인과 해결원인은 간단했다. MySQL의 텍스트 처리 설정이 올바르게 되지 않아서였다. 심플하게 말하자면 한글 처리를 못하니 처리하도록 설정을 변경해주면 된다. docker를 사용해서 배포했기에 docker-compose를 기준으로 설명하겠다. docker-compose.ymlcommand: - --character-se..

[회고] 우테코 프리코스 3주차 - 로또

프리코스 진행 방식진행 방식미션은 과제 진행 요구 사항, 기능 요구 사항, 프로그래밍 요구 사항 세 가지로 구성되어 있다.세 개의 요구 사항을 만족하기 위해 노력한다. 특히 기능을 구현하기 전에 기능 목록을 만들고, 기능 단위로 커밋 하는 방식으로 진행한다.기능 요구 사항에 기재되지 않은 내용은 스스로 판단하여 구현한다.매주 진행할 미션은 화요일 오후 3시부터 확인할 수 있으며, 다음 주 월요일까지 구현을 완료하여 제출해야 한다. 제출은 일요일 오후 3시부터 가능하다.정해진 시간을 지키지 않을 경우 미션을 제출하지 않은 것으로 간주한다.종료 일시 이후에는 추가 푸시를 허용하지 않는다.과제 제출 전 체크 리스트기능을 올바르게 구현했더라도 요구 사항에 명시된 출력 형식을 따르지 않으면 0점을 받게 된다.기능..

[회고] 우테코 프리코스 2주차 - 자동차 경주

🌍과제 - 자동차 경주 사용자에게 경주 횟수를 받아서 횟수만큼 경주를 진행하여 가장 많이 전진한 자동차가 승리하는 프로그램을 구현하는 것이다.  ❗구현 기능 목록자동차 생성 기능자동차 이름은 쉼표(,)를 기준으로 구분이름은 5자 이하만 가능전진 여부 판단 기능4 이상일 경우에만 전진경주 진행 및 우승자 선정 기능시도횟수만큼 경주 진행각 자동차의 전진 여부 저장경주가 끝나면 우승자 선정사용자 입력 및 결과 출력 기능경주 진행 관리 기능 회고테스트 코드를 적절하게 작성할 수 있도록 해야겠다.@ParameterizedTest@ValueSource(ints = {10, 20, 100})void 시도횟수만큼_경기를_진행하면_모든_자동차의_전진횟수가_같지_않다(int round) { // given r..

[회고] 우테코 프리코스 1주차 - 문자열 덧셈 계산기

🌏과제 - 문자열 덧셈 계산기입력한 문자열에서 숫자를 추출하여 더하는 계산기를 구현한다.쉼표(,) 또는 콜론(:)을 구분자로 가지는 문자열을 전달하는 경우 구분자를 기준으로 분리한 각 숫자의 합을 반환한다. 예: "" => 0, "1,2" => 3, "1,2,3" => 6, "1,2:3" => 6앞의 기본 구분자(쉼표, 콜론) 외에 커스텀 구분자를 지정할 수 있다. 커스텀 구분자는 문자열 앞부분의 "//"와 "\n" 사이에 위치하는 문자를 커스텀 구분자로 사용한다. 예를 들어 "//;\n1;2;3"과 같이 값을 입력할 경우 커스텀 구분자는 세미콜론(;)이며, 결과 값은 6이 반환되어야 한다.사용자가 잘못된 값을 입력할 경우 IllegalArgumentException을 발생시킨 후 애플리케이션은 종료되..

UnSupportedException

UnSupportedException 발생우테코의 프리코스 중 하나로 로또를 정해서 진행했다. 한동안 슬럼프(...)가 와서 기능명세서와 패키지 구조까지만 정리하고 나머지는 크게 생각 없이 진행했다. 어찌저찌 빠르게 완성하고 올렸는데 리뷰에서 많은 문제와 의문점을 제기 받았다.  정신없이 개인적인 일들을 처리하고, 기본적으로 주어지는 Test 코드에서 발생한 에러를 처리하기 위해 빠르게 진행했는데 UnSupportedException가 발생했다.   UnSupportedException 원인java.lang.UnsupportedOperationException at java.base/java.util.ImmutableCollections.uoe(ImmutableCollections.java:142) at..

Uncaught Error: [🍍]: "getActivePinia()" was called but there was no active Pinia.

개발환경 : Vue.js, vscode 개요와 해결 https://github.com/ViewGorithm/viewgorithm-frontend GitHub - ViewGorithm/viewgorithm-frontend: viewgorithm FrontEndviewgorithm FrontEnd. Contribute to ViewGorithm/viewgorithm-frontend development by creating an account on GitHub.github.com Viewgorithm 프로젝트를 진행하는 도중에 다음과 같은 에러가 발생했다. Uncaught Error: [🍍]: "getActivePinia()" was called but there was no active Pinia. Ar..

CommunicationsException: Communications link failure

개발환경 : Vue, spring, mysql, docker compose, redis 사건발생 프로젝트를 진행하다가 만난 녀석. 이 녀석이 발생하는 원인은 여러 가지라는데 실제로 이 문제를 해결해가는 와중에 여러 원인이 있었음을 발견했다. 시간도 참 오래 걸렸다. 위에서 작성했다시피 개발환경에서 spring 프로젝트를 dockerize해서 개발 서버에서 mysql, redis 이미지를 pull해와 docker-compose를 활용해 다중 컨테이너를 동시 관리하기로 했다. 그런데 계속 db 컨테이너와 spring 컨테이너에서 문제가 발생했다. 로그를 확인해보니 Caused by 문구에서 시작하는 각 로그가 결정적인 요인이었다. 대부분 'docker-compose.yml 내에서 오타가 있거나 활용을 잘못했..

FileNotFoundException

개요 java.io.FileNotFoundException: class path resource [path/data.json] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/C:/app/app.jar!/BOOT-INF/classes!/path/data.json  플젝 중에 또 만나버린 오류... File Not Found,  이름을 읽어보니 파일을 찾지 못한다고 한다. 지금까지 플젝에서 필수적인 데이터를 resouces 디렉터리에 넣고 테스트해왔다. 하지만 본격적으로 배포를 하니 이 부분에서 문제가 생겼다. File file = new ClassPathResource("파일경로..

728x90
반응형