[오류] Docker 환경에서 MySQL 컨테이너 사용 시 테이블 중복 생성 되는 오류
·
backend/Spring
안녕하세요! 프로젝트를 진행하다가 데이터베이스에 테이블이 중복 생성된 오류를 발견하였고 해결한 것을 남겨두고 학습 하려고 합니다! """ 오류 발생 스프링 부트를 사용하여 캘린더를 만드는 프로젝트를 진행중이었는데, 데이터베이스와 매핑하는 방법을 MyBatis 사용 하다가, Jpa 로 갈아타는 중에 문제가 생겼습니다. 분명 엔티티에 @Table로 기존 데이터베이스 테이블 이름과 대소문자가 모두 동일 하였는데 데이터베이스 조회시 의도와 다른 테이블이 하나 더 생성되어 이슈가 발생한건데요.. MySQL은 테이블 이름의 대소문자 구분 여부를 사용자 운영체제(OS)에 따라 다르다고 합니다. 추가적으로 MySQL에서 설정한 자체 설정값 또한 영향을 받는다고 하는데요.. 보통 Docker를 사용해서 mysql..
[TIP] 스프링 부트 쿼리 파라미터 로그 보이지 않을 때 !
·
backend/Spring
스프링 부트 3.x 버전과 hibernate6 버전 기준으로 작성 하였으며, 스프링 부트에서 JPA를 사용하면 쿼리문이 나가게 되는데, 파라미터 부분이 ? ? 물음표로 답답한 부분들이 있습니다. 이 파라미터에 어떤 값이 들어가는지 확인하고 싶을 때 사용하기 위한 방법입니다. 스프링 부트 2.x 버전 -> application.yml logging: level: org.hibernate.SQL: debug org.hibernate.type: trace 스프링 부트 3.x 버전 -> application.ymllogging: level: org.hibernate.SQL: debug org.hibernate.orm.jdbc.bind: trace
정규화(Normalization) 2정규형 부분 함수 종속 제거
·
잡다한 공부
정보처리기사 자격증을 준비하면서 정규화를 공부하게 되었는데 2정규형인 부분 함수 종속 제거가 책에 있는 내용들이 입에 착 붙지 않기도 하고, 오픈 강의는 찾아 보기가 힘들어서 정리 해두려고 합니다 ! 우선 정규화에 대해서 알아보자면,  정규화| 관계형 데이터 모델에서 데이터의 중복성을 제거하기 위함이고, | 데이터의 일관성과 정확성을 유지하기 위해 무손슬 분해하는 과정입니다.| 정규화를 하게 되면 이상 현상을 방지 할 수있습니다.| 정규화는 함수 종속 개념을 이용하여 진행합니다.  2정규형 부분 함수 종속 제거| 일부에만 의존하는 관계를 제거 하는것.  예시로 도서대출 테이블도서대출학생번호+도서번호(기본키)대출일자학생이름도서제목 | 학생이름은 학생번호에만 의존합니다.(도서번호와는 관계없음)| 도서제목은 ..
[정보처리기사] SQL 기본 문법
·
잡다한 공부
SQL SQL 구조DDLData Definition Language데이터 정의어DMLData Manipulation Language데이터 조작어DCLData Control Language데이터 제어 언어 정의 DDL| 구조를 만드는 것| CREATE, DROP, ALTER 조작 DML| 데이터를 조작 하는 것 | INSERT, SELECT, DELETE, UPDATE 제어 DCL| 데이터베이스를 전체로 제어하는 것| GRANT, COMMIT, ROLLBALK SQL DML | Data Manipulation Language 데이터 조작어 | 정의된 데이터베이스에 입력된 레코드를 조작, 수정, 삭제하는 등의 역할을 합니다.| 저장된 데이터를 실질적으로 처리하는데 사용합니다.  DML 종류INSERT데이터 ..
[정보처리기사] 비트(bit)연산자
·
잡다한 공부
비트연산자| 비트 연산자는 이진수 표현을 기반으로 한 연산을 수행하는 연산자| 비트 연산자를 수행하기 위해서는 "이진수"로 변환해서 값을 봐야 합니다. &| AND연산자| &하나만 쓰는 연산자는, 앞 뒤를 이진수로 변환 이후 두 비트가 모두 1일 때만 1을 반환.int a = 5;int b = 10;int result = a & b;printf("a & b의 결과 : %d \n", result); // 1 || OR 연산자| 두 비트 중 하나만 1이어도 1을 출력하는 연산자. | 둘 다 0인 경우에만 0으로 작성 int a = 5;int b = 10;int result = a | b;printf("a | b의 결과 : %d \n", result); // 7 ^| XOR연산자| 두 비트가 다른 경우 1을 ..
[정보처리기사] 정처기 파이썬
·
잡다한 공부
Python파이썬의 특징| 타입 명시하지 않음, 모두가 객체(클래스에서 파생)| Python은 동적 타이핑 언어로 변수의 타입을 명시하지 않습니다.| 모든 것이 객체이며, 클래스의 인스턴스로서 메서드를 가질 수 있습니다. | 파이썬은 변수에 값이 들어가면 타입이 정해집니다. python# 변수 타입을 명시하지 않음.x = 10;print(x, type(x)) # 10x = "Hello, World!"print(x, type(x)) # Hello, World! 파이썬 자료형intstrlistdictsettuple | 외적으로도 많지만, 중요한 것 6개만 작성했습니다 ✅ | #bool : 참, 거짓을 대문자로 받습니다. (C , Java : 소문자) | Bool 형태를 숫자로 하면 True은 1, False..
[오류] IntelliJ Spring Devtools 실행 되지 않을 때
·
backend/Spring
DevTools 서버를 재시작하지 않아도 클래스를 변경할 때 서버가 자동으로 재가동되는 라이브러리. 오류 해결 1. build-gradle 파일에서 의존성 적는 부분에, devtools를 runtimeOnly로 변경기존 implementation 변경 후 runtimeOnly 2. 설정 -> Build, Execution, Deployment -> Build Tools -> Gradle -> Build and Run 부분 IntelliJ IDEA 로 변경  3. Build, Execution, Deployment -> Compiler -> Build project auto..~ 체크  4. Advanced Settings -> Compiler -> Allow auto-make to start even i..
[정보처리기사] 정처기 자바
·
잡다한 공부
C언어랑 Java의 차이점 | 언어구조 | 용어| 코드의 흐름  C Java절차적언어구조"객체"단위로 해석구조체, 함수..용어클래스, 메서드보통 위에서 아래로코드의 흐름여기저기 왔다갔다  생성자클래스 내에서 클래스명과 같은 메서드파라미터가 없는 생성자를 기본생성자라고 합니다.기본생성자는 적어도 되고, 적지 않아도 생성됩니다.  ✔️ | 파라미터가 있는 생성자를 생성하면 기본 생성자는 자동으로 생성되지 않습니다.| 매개변수 없는 생성자가 없는데, 호출하게 되면 컴파일 에러가 발생합니다.  ✅ 클래스 내의 this()는 나 자신의 생성자를 뜻합니다. | this()는 매개변수 없는 것,| this(a, b)는 매개변수를 2개 넣은 것,| this.a는 멤버 변수를 뜻하는 것. ✅ super키워드 | supe..