Lock wait timeout exceeded 에러가 발생하는 대표적인 상황을 MySQL에서 직접 재현해봤다.
프론트에서 Swagger UI로 API를 실행할 때@RequestPart로 JSON을 받는 경우, Swagger는 이를 file로 인식해서 Content-Type: application/octet-stream으로 전송하게 되고,이로 인해 Content-Type 'app
FE팀에서 개발 중 Swagger UI에서 API 테스트를 위해 Execute 버튼을 눌렀는데 CORS 오류가 발생했다. 처음엔 Spring Security 설정에 문제가 있는 줄 알고 CORS origin을 추가했지만, 문제가 해결되지 않았다. 원인을 찾아보다가 Sw
인텔리제이에서 어제까지 잘 실행하다가 오늘 갑자기 실행하니까 아래와 같은 port 충돌 오류가 났다찾아보니까 대부분 아래와 같은 방식의 해결방법으로 진행하더라cmd를 관리자 모드로 실행netstat -ano | findstr 8080 명렁어 입력taskkill /f 1
3306 포트를 사용 중인 프로세스 ID(PID) 찾기 명령 프롬프트(CMD)를 관리자 권한으로 실행한 후, 아래 명령어를 입력 해당 PID의 프로세스 강제 종료 PID를 확인한 후 아래 명령어로 프로세스를 종료 결과 문제상황 pc가 새롭게 시작될때마다 dock
문제 원인) dockerhub아이디를 사용함 GHCR과 Docker Hub는 별개의 레지스트리 ghcr.io는 GitHub Container Registry(GHCR)이고, docker.io는 Docker Hub임. 즉, GHCR에서 이미지를 가져오려면 GitHu
HAProxy는 로드 밸런서(reverse proxy)로서, 새 버전을 배포하는 동안에도 기존 서비스가 중단되지 않도록 트래픽을 관리한다.예를 들어, v1이 실행 중일 때 v2를 배포하는 경우, HAProxy는 v2가 준비될 때까지 계속 v1으로 트래픽을 보낸다.새 버
: 하나의 Dockerfile 내에서 여러 개의 FROM을 사용하여 빌드 환경과 실행 환경을 분리하는 기법 빌드 과정과 실행 과정 분리→ 빌드용 이미지에는 많은 개발 도구가 필요하지만, 실행용 이미지는 최대한 가벼운 것이 좋음. 컨테이너 크기 최적화→ 빌드가 끝난
AWS EC2를 프리티어로 사용하면 RAM 메모리가 1GB밖에 되지 않는다이러면 해당 메모리에 docker나 nginx, spring Boot 빌드만 해도 터진다이럴땐 EBS(SSD)에스왑파일을 생성해 가상 메모리를 만들어 저장 공간을 늘릴 수 있다AWS에서 제공하는
aws cli가 다운받아져 있고 현재 상황에서 aws configure해서 로그인이 되어 있다면 aws configure list하면 목록이 나온다. 그렇기 때문에 springBoot에서 application.yml 환경변수 aws configure 명령어로 설정된
AWS : AWS(Amazon Web Services)는 아마존에서 제공하는 클라우드 컴퓨팅 서비스테라폼 : HashiCorp에서 개발한 인프라스트럭처를 코드로 관리하는 오픈소스 도구→ Terraform의 선언적 구성(Declarative Configuration)
리팩토링 후 코틀린 마이그레이션 진행하는 방향이 좋다.성공한 경우에는 resultCode를 200으로 단일 처리하는 것이 좋다. (실제로 현업에서도 201, 204 등 따로 처리하는 것이 거의 의미가 없다.)서버의 개수가 늘어나면 Stomp와 SSE에 변화가 필요하다.
github에서 확인하기github > repository > branch > 해당 파일을 선택한다. history에서 commit 내역을 확인하여 누가 수정했는지 파악한다. CLI로 확인하기git blame 파일명 명령어를 사용하면 해당 파일의 각 줄을 마지막으로
자바와 코틀린은 호환되므로 점진적으로 변환 가능코틀린은 널포인트익셉션(NPE) 발생이 적음확장 함수를 활용하여 기존 클래스에 기능 추가 가능자바보다 간결한 코드 작성 가능 → but, 요즘은 java 버전이 ↑ 거의 개선됨코루틴 등 다양한 기능 제공✅ 코루틴이 뭐지?:
프로젝트 상세 조회 API를 호출한 후, 응답 데이터가 정상적으로 반환되고 setProject(res.data);를 통해 상태를 업데이트했지만, 화면(UI)에는 데이터가 표시되지 않는 문제가 발생하였다.API 응답을 확인한 결과, res.data의 구조는 다음과 같았다
프로젝트 수정 시, 다음과 같은 세 가지 경우가 존재한다.썸네일 첨부파일만 수정하는 경우 → Content-Type 'application/octet-stream' is not supported.썸네일 첨부파일과 프로젝트 내용(JSON)도 수정하는 경우 → Conten
nginx가 없으면 포트를 다르게 해서 연결해야한다.nginx는 컨트롤러, 거대한 if,switch문, 배구에서의 토스와 같은 역할을 한다.\+nginx가 없다면, 포트를 다 다르게 해서 매핑해줘야한다.a.com:8080 → site1b.com:8081 → site2c
62강.용량을 확인해보면 알겠지만나중에 rm으로 삭제한다고 해서 용량이 줄어들지 않는다.RUN 명령어를 쓴다는것이 layer를 추가하는거고 , 이때 layer는 immuatable하다그렇기떄문에 싱글이 아닌 멀티 스테이지 빌드를 사용하는 것이 용량 측면에서도 사용하기
빌드(Build)는 .java 파일을 컴파일하여 .class(바이트코드) 파일로 변환하는 과정이다.javac(Java Compiler)를 사용하여 .java 파일을 .class 파일로 변환한다.위 명령을 실행하면 Test.class 파일이 생성된다.JAR(Java AR