본문 바로가기

전체 글292

WSL2 - Windows 파일 시스템 권한 변경 안되는 이슈 # windows 파일 시스템 mnt/c/~ 경로에 위치한 파일의 권한 변경 안되는 이슈권한 변경이 필요한 파일을 도커 볼륨을 통해 컨테이너 안에서 권한 변경을 시도했지만 실패. WSL2에서 Windows 파일 시스템(/mnt/c/)에 있는 파일은 기본적으로 Linux 파일 권한 변경(chmod, chown)이 적용되지 않음.이 문제를 해결하려면 wsl.conf 설정을 수정하여 metadata 옵션 활성화가 필요함. WSL2에서 Windows 파일 시스템(/mnt/c/)은 기본적으로 NTFS 파일 시스템을 사용하며, Linux의 파일 권한(chmod, chown) 저장할 수 없음.metadata 옵션을 활성화하면 WSL이 파일 권한 정보를 별도의 메타데이터로 저장하여 Linux 파일 권한을 변경할 수 있.. 2025. 3. 29.
DB 커넥션 관련 에러 - 트랜잭션 # 에러 메시지### Caused by: co[http://m.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException:](http://m.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException:) Lock wait timeout exceeded; try restarting transaction\### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Cann.. 2025. 3. 29.
Datagrip Data Source 연결 시, invalid fetch size 문제 해결 Maria DB를 로컬에 생성한 후, Datagrip을 통해 Data Source를 연결하는 과정에서 문제가 발생하였습니다.  Test Connection을 통해 정상적으로 연결되는 것을 확인하였습니다.OK를 눌러 Data Source 연결을 적용하려고 하니, 우측 하단에 다음과 같은 경고 문구가 떴습니다.  Data Source를 연결할 때, 디폴트 값으로 설정된 fetch size에 문제가 있나 싶었습니다.해당 Data Source의 속성 설정에 들어가 defaultFetchSize 값을 늘려서 연결해보았지만 실패했습니다.  관련해서 구글링을 해보다가 Jetbrains YouTrack에 동일한 이슈에 대해서 다루고 있었고, 해답을 찾게 되었습니다.  JDBC 드라이버의 버전 문제였고, 버전을 낮춰주니.. 2024. 6. 16.
[책 리뷰] 객체지향의 사실과 오해 읽게 된 계기  전부터 이 책을 알고는 있었지만, 항상 읽어야지.. 읽어야지.. 생각만 했었다. 이런저런 생각은 많은데, 바로바로 실행에 옮기는 게 쉽지는 않다. 엄청난 필요성을 느끼는 게 아니면, 그냥 생각하는 선에서 그치곤 한다. 그러던 중, 우테코 프리코스 미션을 수행하면서 객체지향 설계에 관한 지식의 필요성을 굉장히 많이 느꼈다.  프리코스 동안의 미션들은 대부분 클래스의 적절한 설계, 클래스 간의 낮은 결합도와 상호작용을 많이 신경써야 했고, 또 그 부분을 지키려고 애썼다. 매 주차마다 더 나은 설계를 하고 싶었고, 그래서 이 책을 택해서 읽게 되었다. 객체지향 하면 떠오르는 캡슐화, 상속, 다형성, 추상화 등의 특징들 이외에도 객체지향 설계에 관한 내용을 더 알아보고 싶었다.   기억에 남는 .. 2024. 2. 21.
조회 쿼리 개선 + 성능 테스트 (Querydsl, nGrinder) 귤박스 프로젝트에서 초기 단일 게시글 조회 API는 다음과 같은 쿼리 메서드를 사용했다. public interface PostRepository extends JpaRepository { Optional findByPostId(long id); } Spring Data JPA에서 제공하는 단순 쿼리 메서드를 이용했고, 다음과 같이 N+1 문제가 발생하였다. 먼저, N+1 문제가 발생하는 이유는 단일 게시글을 조회 시, 응답되는 데이터 때문이다. (엄밀히 말하면, 응답되는 데이터라기보다 응답 데이터를 불러오는 방식 때문) 해당 응답 데이터는 다음과 같은 데이터들을 포함한다. 1. 조회하는 게시글의 정보 (Post) 2. 게시글의 작성자 (User) 3. 게시글이 속한 주거 공간 (HouseInfo) 4... 2024. 1. 10.
API 성능 테스트를 위한 nGrinder 시작하기 nGrinder는 네이버에서 제작한 The Grinder 기반의 테스팅 플랫폼이다. - nGrinder 공식 페이지: https://naver.github.io/ngrinder/ nGrinder Please post questions in Discussions not Issues. nGrinder 3.5.5-p1 version is now available. Check the changes at here. nGrinder is a platform for stress tests that enables you to execute script creation, test execution, monitoring, and result report gener naver.github.io 이전에 진행했던 사이드 프로젝.. 2023. 12. 25.
우아한테크코스 6기 - 프리코스 회고 여타 기업 공채 지원서를 작성하듯이, 한 번 지원해보자라는 가벼운 마음으로 우테코 6기 지원서를 작성해나갔다. 지원서를 작성하다보니 가벼운 마음은 사라졌고, 점점 몰입해서 작성하면서 꼬박 며칠을 몰두해서 썼던 것 같다. 우아한테크코스 6기에 지원서를 제출하고 약 3일 뒤부터 프리코스가 시작되었다. 10월 19일부터 11월 15일까지 총 4주간의 프리코스 일정을 경험하면서 배운 것들을 기록해보며 다시 한 번 되새겨보려 한다. 각 주차마다 미션이 주어지고, 해당 미션의 요구사항들을 지키면서 개발을 진행하면 된다. 먼저, 미션의 요구사항을 이해하고 필요한 기능들을 스스로 정의해야 한다. 이 기능 목록을 작성하는 것이 매 미션마다 새로웠고 쉽지 않았다. 하지만, 주차가 지나갈수록 기능 목록 작성에 대해 나만의 .. 2023. 11. 16.
H2 DB - 3가지 모드(Embedded, In-Memory, Server Mode) H2 DB는 Java 기반 경량의 오픈소스 RDBMS입니다. 다음과 같은 특징을 가집니다. 매우 빠른 성능을 제공하는 오픈소스 JDBC를 사용한 Java 애플리케이션과 상호작용 가능 임베디드 모드, 인메모리 모드, 그리고 서버 모드를 지원 영구적으로 저장되지 않는 인메모리 데이터베이스 브라우저 기반의 콘솔 응용 프로그램 제공 경량 데이터베이스(H2의 JAR 파일 크기는 약 2.5MB) 각각의 모드에 대한 사용법과 특징은 아래와 같습니다. 임베디드 모드(Embedded Mode) 해당 모드는 애플리케이션 내에 포함되어 실행되고, 로컬 파일 시스템에 DB 파일이 영구적으로 저장됩니다. 애플리케이션을 다시 실행해도 데이터가 그대로 유지됩니다. jdbc:h2:~/test - 사용자의 홈 디렉토리 안에 test라.. 2023. 10. 5.
SQL 쿼리 실행 순서 1. FROM: 데이터 검색, 조작할 테이블 또는 데이터 소스 지정 2. JOIN: 필요한 경우, JOIN 절에서 두 개 이상의 테이블 결합 3. WHERE: 조건을 사용하여 원하는 행 필터링 4. GROUP BY: 그룹화를 위해 특정 열을 기준으로 행 그룹화 5. HAVING: 그룹화된 결과에 대한 조건 지정 6. SELECT: 반환하려는 열 선택, 결과 데이터의 형식 지정 7. DISTINCT: 필요한 경우, 중복된 행 제거 8. ORDER BY: 결과 정렬 9. LIMIT / OFFSET: 페이지네이션을 위해 결과를 제한 or 오프셋 적용 10. SELECT 절에서 계산식이나 함수를 사용하여 데이터 가공 및 변환 11. 실행된 쿼리의 결과 반환 ( INSERT / UPDATE / DELETE: 데이.. 2023. 9. 27.