본문 바로가기

프로그래밍94

[JPA] MapStruct를 써야 하는 이유 MapStruct를 써야 하는 이유 MapStruct는 Java 객체 간의 매핑을 자동화하기 위한 코드 생성 도구입니다. 일반적으로 객체 간의 매핑을 수동으로 구현하는 것은 번거롭고 실수를 할 수 있으므로 개발자들은 MapStruct와 같은 도구를 사용하여 이러한 문제를 해결할 수 있습니다. MapStruct는 매핑 코드를 자동으로 생성하기 때문에 개발자는 수동으로 작성해야 하는 매핑 코드를 작성할 필요가 없으므로 시간과 노력을 절약할 수 있습니다. 또한, MapStruct는 코드 생성기를 사용하여 코드를 생성하기 때문에 컴파일 타임에 매핑 오류를 발견할 수 있으며, 이를 수정하기 위해 빠르게 대응할 수 있습니다. MapStruct는 애노테이션을 사용하여 매핑 규칙을 지정할 수 있습니다. 이러한 규칙은 .. 2023. 2. 19.
[Mapstruct] Can't generate mapping method for a generic type variable source. 오류 mapstruct를 이용해서 사이드 프로젝트를 하면서 구조를 짜던 중 이런 오류가 발생했다. 직역하자면 mapping 할때 generic 타입을 사용할 수 없다는 건데, 어디서 잘못된건지 알 수가 없었다........ 일단 프로젝트 mapstruct의 구조는 이렇게 설계했다. genericMapper | productMapper | productMapperImpl(이건 mapstruct가 자동으로 생성해준다.) 그런데 아무리 build clean하고 다시 build 해봐도 똑같은 오류가 발생했다. 이유는 간단했다. generic을 사용한 mapper에서 @Mapper(componentModel = "spring") 어노테이션을 사용했기 때문에 발생한 오류였다. @Mapper(componentModel =.. 2023. 2. 19.
[Flutter] Android Studio (version 2022.1) / Unable to find bundled Java version. 오류 1. 플러터를 설치하는 도중 Android Studio쪽에 아래와 같은 오류가 발생하였다.  flutter doctor Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.7.0, on macOS 12.6.3 21G419 darwin-arm64, locale ko-KR) [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1) [✓] Xcode - develop for iOS and macOS (Xcode 14.2) [✓] Chrome - develop for the web [!] Android Studio.. 2023. 2. 1.
[Flutter] Flutter Doctor / Xcode CocoaPods not installed. / sudo gem install cocoapods 설치 안되는 오류 1. Flutter로 앱을 만들기 위해 Flutter를 설치하던 중 오류가 발생했다.  flutter doctor Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.7.0, on macOS 12.6.3 21G419 darwin-arm64, locale ko-KR) [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1) [!] Xcode - develop for iOS and macOS (Xcode 14.2) ✗ CocoaPods not installed. CocoaPods is used to retrie.. 2023. 2. 1.
[error]source release 17 requires target release 17 인텔리제이 in mac 맥에 java 11버전과 17버전을 둘다 깔아놓고 인텔리제이를 사용하다보니 이상하게도 build.gradle에 17버전이라고 명시되어 있는 프로젝트라고 하더라도 코드를 실행할 때 default로는 sdk가 11버전으로 잡혀서 실행되는 경우가 생겼다. (언제부터인가 새로 build.gradle로 프로젝트를 열면 이렇게 됨.) 프로젝트를 진행하다가 테스트코드를 돌려야하는 상황이 생겨 돌려보니.. source release 17 requires target release 17 라는 오류가 나오면서 돌아가지 않는다. (test 빌드를 인텔리제이로 하지 않고, gradle로 다시 바꾸어 주었을 경우에는 돌아감.) 그래서 이것은 인텔리제이의 설정문제다 하고 삽질을 한 결과... 간단한 해결방법을 찾아내었다. Fil.. 2022. 11. 29.
[스프링 배치 오류] BadSqlGrammarException "BATCH_JOB_INSTANCE" not found 해결 : batch는 db테이블을 미리 만들어 줘야 한다. # batch-schema options : always, never spring.batch.initialize-schema=never 을 설정으로 넣어주면 됨. (처음에는 always 넣어 줘야 함.) 2022. 11. 2.
[git] git 명령어 ( 이미 로컬에 존재하는 리포지토리를 원격으로 푸시해야 할 때 ) 먼저 현재 로컬 리포지토리리로 change directory 한다. 그 다음 아래에 명령어를 입력 cd {로컬 리포지토리 주소} git remote add origin {깃주소 clone} git branch -M main git push -uf origin main 처음 remote 저장소에 프로젝트를 만들고 loacl에서 4번째줄이 실행이 안되는 경우가 있다. 나같은 경우에는 이미 git에 올렸던 파일을 복사하여 새로운 git에 올리는 작업을 하였는데, main브랜치에 올라가야할 프로젝트 파일이 master 브랜치를 새로 생성해서 올라가는 기이한 현상이 일어났다. 더군다나 main 브랜치에 —force를 붙여 push 하려해도 reject 당해서 해결을 방법을 찾아다녔고, 그 중 해결 한 방법이 아래.. 2022. 10. 12.
[Tip]window와 mac git 협업할 때 설정해줄 것 mac os 는 lf만 사용하고 window는 crlf을 사용한다. 이 차이점으로 부터 오는 문제가 있다. 해결방법 윈도우에서는 CRLF 를 사용하므로 저장소에서 가져올 때 LF 를 CRLF 로 변경하고 저장소로 보낼 때는 CRLF 를 LF 로 변경하도록 true 로 설정한다. 리눅스, 맥, 유닉스는 LF 만 사용 하므로 input 으로 설정한다. git config --global core.autocrlf true git config --global core.autocrlf input 2022. 10. 12.
[python]Django 가상환경 구축, 서버 띄우기 소스파일에 맞는 python 버전 연결해서 올려야함 - venv로 가상환경 만들기 venv는 현재 컴퓨터에 설치된 버전과 동일한 버전으로 가상환경이 만들어짐. mkdir venvs cd venvs python -m venv 폴더명 폴더 안에 있는 Scripts 안에 들어가서 activate를 입력하면 pip를 입력할 수 있는 환경이 조성됨 프로젝트에 필요한 패키지들을 다 설치해야함. → requirements.txt 안에 패키지 별 버전 정보 들어 있음. pip install로 필요한 패키지 모두 설치 pip install mysqlclient 빠져나올때는 deactivate. 패키지 설치후 setting.py를 찾아서 db정보 수정해주고 서버 올리면 끝. #setting.py에 들어가는 설정정보 'de.. 2022. 10. 12.