전체 글

카테고리 없음

메모

커밋 방법git commit / git commit --amend(수정)> i(입력모드) > 작성(메모장에 쓰고 복붙) > esc> :wq 엔터(저장및종료)// :q! (저장없이 종료)

카테고리 없음

2일전에 추가할것

[로그 한글 깨지는거 방지 1번]// build.gradle (전체 복사해서 템플릿에 넣으세요) tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } tasks.withType(Test) { systemProperty "file.encoding", "UTF-8" } tasks.withType(JavaExec) { systemProperty "file.encoding", "UTF-8" }--------------------------[리드미에 추가]"VDI 환경 특성상. 그리고 실행 환경(OS, IDE 인코딩 설정 등)에 따른 한글 인코딩 깨짐 현상이 발생할 수 있어, 로그와 주요 에러 메시지는 영문을 혼용하여 가독성을 확보하였습니다."

카테고리 없음

단축키 + 명령어

./gradlew clean build​만약 시험 환경이 윈도우라면 ./를 빼고 뒤에 .bat을 붙여야 할 수도 있습니다.​명령어: gradlew.bat buildCtrl + Shift + F10 (테스트 실행)./gradlew clean test3. 테스트 결과가 안 보일 때 (Alt + 4)실행 버튼을 눌렀는데 화면에 아무 변화가 없다면, 단축키 **Alt + 4**를 눌러보세요. 하단의 Run 콘솔창이 강제로 열리면서 테스트 결과와 **Hibernate 로그(create table 등)**를 한눈에 볼 수 있습니다

카테고리 없음

(VDI)원래 되던게 안될때

2. VDI 환경에서 테스트 실패 시 대처법 (Troubleshooting)내 컴퓨터에선 됐는데 VDI에서 안 된다면, 90%는 '환경 설정(Infrastructure)' 문제입니다. 당황해서 로직을 건드리지 말고 아래 순서대로 체크하세요.① DB / Redis 연결 오류 (가장 흔함)증상: Connection Refused 또는 Timeout 에러.원인: 도커 컨테이너가 안 떴거나, 포트 설정이 다름.해결: * 터미널에 docker ps를 쳐서 mysql, redis가 떠 있는지 확인하세요.application.yml의 url이 localhost:6379(Redis), localhost:3306(MySQL)인지 확인하세요. (VDI 환경에 따라 localhost 대신 컨테이너 이름인 redis, mys..

카테고리 없음

README

위치: src 폴더, build.gradle 파일과 같은 라인에 만듭니다.파일명: 반드시 README.md (대문자 권장)로 만드세요. 프로젝트 실행 방법: (예: ./gradlew bootRun 또는 docker-compose up)사용 기술 스택 및 이유: "Redis(Redisson)를 사용해 분산 환경 동시성을 제어함"핵심 설계 포인트: "외부 API 장애에 대비해 @Transactional과 예외 처리를 결합함"트레이드오프: "성능을 위해 비관적 락 대신 분산 락만 선택함" (아까 연습한 그 논리!)문제 해결 과정: "동시성 테스트 시 발생한 정합성 문제를 어떻게 해결했는지"

카테고리 없음

Git

[깃 주의사항]​git add . 주의: target 폴더나 인텔리제이 설정 파일(.idea)이 같이 올라가지 않도록 주의하세요. (Spring Initializr가 만들어준 .gitignore가 있다면 괜찮습니다.)​커밋 메시지 가성비: 너무 정성 들여 쓰지 마세요.​feat: 새로운 기능​fix: 버그 수정​test: 테스트 코드 추가-----------------[브랜치]main: "언제든 배포 가능한 깨끗한 코드"feature/setup: "나는 환경 설정을 꼼꼼히 한다"feature/transfer: "나는 송금 로직과 그에 따른 테스트를 세트로 짠다"feature/concurrency: "나는 동시성 같은 심화 문제까지 고민한다"------------------[깃 사용법]​① 프로젝트 초기 ..

카테고리 없음

예외처리

[글로벌 템플릿](1~4가 한세트)(사용시)실전 활용 예시 (Service 로직)이제 서비스에서 잔액이 없을 때 이렇게 던지면 됩니다.if (sender.getBalance() throw new CustomException(ErrorCode.INSUFFICIENT_BALANCE);}------------1. ErrorCode.java (global/error/) - 에러 종류 정의@Getter@AllArgsConstructorpublic enum ErrorCode { // 공통 에러 INVALID_INPUT_VALUE(400, "C001", "잘못된 입력값입니다."), METHOD_NOT_ALLOWED(405, "C002", "허용되지 않은 메서드입니다."), INTERNAL..

카테고리 없음

5시간 계획

​feature/setup: build.gradle, yml, GlobalException 설정 (약 30분)​다 하면 main에 머지.​feature/transfer: 계좌 생성, 잔액 조회, 기본 송금 로직 + 단위 테스트 (약 2시간)​테스트 통과하면 main에 머지.​feature/concurrency: Redisson 분산 락 적용 + 동시성 테스트 (약 1.5시간)​테스트 통과하면 main에 머지----------------순서 파일명 (예시) 위치 기능 주석 내용1 build.gradle Root implementation: JPA, Validation, Redisson, H22 application.yml resources DB 접속 정보, Redis 호스트, JPA ddl-auto: cr..

카테고리 없음

★시작

마지막 30분엔 추가할것들 입털기 주석과리펙터 요소 어떻게해서 어떤거 개선할 예정. 등 입털기 가성비좋다.[복붙의 공백 오류 제거]ctrl + alt + L[해결책: 인텔리제이 설정을 Gradle로 통일하기]2일 전 준비할 때 이 설정을 꼭 하세요. 그럼 시작 버튼을 눌러도 터미널 명령어와 똑같이 동작합니다.​Settings (단축키 Ctrl + Alt + S) 열기​Build, Execution, Deployment -> Build Tools -> Gradle 이동​**Build and run using**와 **Run tests using**을 모두 **Gradle**로 변경하세요자동 import: 설정(Settings -> Editor -> General -> Auto Import)에서 Add un..

카테고리 없음

테스트

[테스트시 주의사항] 데이터 초기화: @BeforeEach에서 데이터를 밀어넣을 때, 이전 테스트가 영향을 주지 않도록 accountRepository.deleteAll()을 먼저 수행하는 것이 안전합니다. ----------------------------------[분산락](동시송금 100명 테스트)​경로: src/test/java/com/toss/assignment/domain/transfer/service/TransferConcurrencyTest.java import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.co..

lis017
리스