728x90
반응형

Dev./Error. 11

[Error] Docker MySQL 세팅 시 3306 포트 오류 해결방법

왜 3306 포트 오류가 나올까?도커 MySQL과 로컬 MySQL이 둘 다 3306 포트를 사용하려고 해서 충돌하기 때문이다.도커는 포트를 실제 OS에서 공유함. 즉, “가상환경”이라도 포트는 절대 가상화되지 않는다대표 오류 메세지Ports are not available: listen tcp 0.0.0.0:3306: bind: address already in use3306 이미 누가 쓰고 있어서 도커가 못 씀해결 방법 1. 3306 점유 프로세스 확인lsof -i :3306문제가 있는 경우mysqld 1234 ...com.docke 5678 ...mysqld (로컬 MySQL) 포트 때문에 충돌이 난다.2. 로컬 MySQL 중지brew services stop mysql 맥은 macOS의 기능 ..

Dev./Error. 2025.11.25

[Error] Port 8080 was already in use

문제새로운 스프링 프로젝트 테스트 실행시 다음과 같은 오류가 콘솔창에 뜸Port 8080 is already in useIdentify and stop the process that's listening on port 8080 or configure this application to listen on another port.8080 포트를 이미 다른 프로세스에서 사용 중이라는 뜻나는 분명 이전 프로젝트 서버를 껏는데?이전 프로젝스 서버 죽이고 새로운 프로젝트를 실행했다.개발 중 의도치않게 포트가 점유된 상태로 서버가 백그라운드로 남는 경우가 종종 있다고 한다.appication.properties 파일에서 포트를 예를들어 8081 로 바꿔줄수도 있지만 정석대로 원인을 해결하는 방법으로 정함.상황 진단터..

Dev./Error. 2025.11.11

[Error] MySQL 버전 충돌 (macOS/Homebrew)

예전에 공부용으로 homebrew로 설치된 mysql이 있었는데 이번에 예제 따라간다고 웹에서 MySQL 8.4 dmg를 추가 설치하면서 두 버전이 같은 포트와 데이터 디렉토리를 공유하며 지속된 충돌문제가 발생했다.발생된 로그로그설명Unable to lock ./ibdata1 error: 35InnoDB 데이터 파일(ibdata1)을 중복 프로세스가 잠그려 함Can't connect to local MySQL server through socket '/tmp/mysql.sock'이미 다른 인스턴스가 포트를 점유하거나 소켓 경로 다름Access denied for user 'root'@'localhost'root 인증 플러그인 꼬임 (caching_sha2_password ↔ mysql_native_pas..

Dev./Error. 2025.11.08

[Error] JPA 양방향 연관관계에서 무한 루프문제 해결

문제단건 조회시 해당 엔티티에 딸린 댓글들을 가져올 때 엔티티를 그대로 반환하면서 무한 루프 문제가 발생했다.Todo와 Comment는 서로 양방향 연관관계로 연결되어있다. 원인@RestController는 반환값을 자동으로 JSON 직렬화한다고 한다. 그때 양방향 연관관계에서 Jackson이 Todo 객체를 JSON으로 변환하려 함Todo 내부의 comments를 직렬화하려 함각 Comment는 다시 todo를 가지고 있어서 Todo 직렬화 시도Todo → Comment → Todo → Comment … 🔁와 같은 순환문제가 발생한다. 즉, 객체가 서로를 참조하고 있어서 JSON 변환이 무한 루프에 빠지는 것해결해결방법은 여러가지가 있다고 하는데 나는 @JsonManagedReference / @Js..

Dev./Error. 2025.11.06

[Error] 자바에서 객체의 동등성과 동일성 문제

상황 요약Cart 클래스에서 Map 구조로 장바구니 관리.MenuItem은 이름(name)과 가격(price)을 가진 단순한 객체.같은 메뉴 이름을 여러 번 담을 때 수량이 합쳐져야 하는데, 서로 다른 MenuItem 인스턴스로 인식되어 중복 저장되는 문제가 발생할 수 있음.MenuItem m1 = new MenuItem("Americano", 2000);MenuItem m2 = new MenuItem("Americano", 2000);cart.addCartItem(m1, 1);cart.addCartItem(m2, 1); // ❌ 중복 추가됨 원인 분석자바에서 HashMap은 Key를 비교할 때 동일성(==)이 아니라 동등성(equals)을 사용하지만 다음과 같은 두 단계가 필요하다hashCode() →..

Dev./Error. 2025.10.29

[Error] ModuleNotFoundError: No module named 'apps.views.main'; 'apps.views' is not a package

문제 발생 원래 Django에서는 app 디렉토리 내의 views.py 파일에 뷰 함수나 클래스를 작성한다. 하지만 나 같은 경우 views.py 파일이 복잡해져 파일로 분리해 작성하고 싶었다. 이 오류는 분리한 파일을 폴더로 생성하고 폴더 내부에 파일들을 생성해 다른 파일에서 해당 뷰를 import 할 때 난 오류이다. 원인 기존의 views.py 파일과 새로 생성한 디렉토리 이름 간의 이름 충돌이 발생한 것이다. 예를 들어, 기존의 views.py 파일과 myapp/views 디렉토리에 새로 생성한 main.py 파일이 존재하는 경우, from . import views와 같은 import 구문이 views 파일인지 views 폴더인지 어떤 것을 참조해야 하는지 알 수 없기 때문에, ModuleNot..

Dev./Error. 2023.04.27

[Error] TypeError: 'BasePermissionMetaclass' object is not iterable in django rest framework

permission_classes를 작성해주다 난 오류이다. permission_classes는 리스트와 튜플형태로 작성 가능한데 튜플로 작성할 때는 문법적 차이로 살짝 형태가 다르다. 파이썬에서 튜플을 만들 때 하나의 요소만 있을 경우, 그냥 괄호만으로는 튜플임을 인식하지 못하기 때문에 튜플 안에 하나의 요소만 있더라도 반드시 쉼표(,)를 함께 작성해주어야 한다. permission_classes = (IsStaffUser,) OR permission_classes = [IsStaffUser]

Dev./Error. 2023.04.22

[Error] DETAIL: There are 2 other sessions using the database.

PostgreSQL을 사용하고 있는데 DROP DATABASE를 해야하는 상황에서 발생한 에러이다. 전체 에러의 의미는 해당 데이터베이스에 다른 사용자 혹은 세션이 엑세스 하고 있다는 뜻이다. 일반적으로 데이터베이스에는 여러 사용자가 접근할 수 있지만 데이터베이스는 하나의 세션에 의해 동시에 접근되는 것을 허용하지 않는다. 즉 현재 데이터베이스에 이미 두 개의 세션이 존재하고 있다는 의미이다. 데이터베이스를 삭제하기 위해서는 활성화 된 세션을 먼저 강제로 종료시켜주어야 한다. select pg_terminate_backend(pid) from pg_stat_activity where datname = 'DB명'; pg_terminate_backend ---------------------- t t 해당 ..

Dev./Error. 2023.04.13
728x90
반응형