전체 글
-
Factory method 'sqlSessionFactory' threw exception; nested exception is java.io.FileNotFoundException: class path resource [mapper/] cannot be resolved to URL because it does not exist 에러 해결서버 & 프레임워크/Spring & SpringBoot 2025. 2. 18. 10:18
Factory method 'sqlSessionFactory' threw exception; nested exception is java.io.FileNotFoundException: class path resource [mapper/] cannot be resolved to URL because it does not exist Mybatis 환경세팅을하고 스프링부트를 실행시켰는데 해당 에러가 나면서 실행이 되지 않았다.파악해보니, Mybatis가 Mapper XML 파일을 읽어들이지못해 나는 에러였다. XML 파일에 추가해주었더니 해결되었다.
-
hikaripool-1 - failed to execute isvalid() for connection 에러 해결서버 & 프레임워크/Spring & SpringBoot 2025. 2. 17. 16:44
hikaripool-1 - failed to execute isvalid() for connection, configure connection test query (receiver class cohttp://m.ibm.as400.access.as400jdbcconnectionimpl does not define or inherit an implementation of the resolved method 'abstract boolean isvalid(int)' of interface java.sql.connection.). 현재 AS400 DB2를 사용하고있는데 Spring Boot 에서 Mybatis를 연동하는 중, 이 에러를 마주했다.에러를 분석해보니 hikariCP에서는 isValid()라는 함수를 ..
-
AWS - Nginx에 React 프로젝트 빌드 후 배포하기서버 & 프레임워크/Server 2025. 2. 10. 22:13
로컬에 존재하는 React 프로젝트를 AWS EC2에 배포해보자. 배포하기전에 EC2에 Nginx가 미리 설치되어 있어야 하고, 보안그룹의 인바운드 규칙에 80번 포트가 추가되어 있어야 한다. 1. 내 로컬 PC에서 React 프로젝트 빌드npm run build 2. SSH로 AWS 접속 후, Nginx 기본 설정 비활성화sudo rm /etc/nginx/sites-enabled/default 3. 로컬에 있는 build 폴더를 EC2 서버로 옮기기scp -i [pem파일경로] -r build/ ubuntu@[AWS퍼블릭ip]:~/react-app// 로컬의 build 폴더를 서버의 홈 디렉토리에 react-app 이라는 폴더로 만든다. 4. 로컬에서 가져온 폴더를 Nginx 루트로 이동sudo m..
-
Java - JVM의 작동원리와 스레드언어/Java 2025. 2. 9. 22:58
JVM(Java Virtual Machine)은 Java 애플리케이션을 실행하기 위한 가상 머신으로, Java 바이트코드를 실행하고 운영 체제와 하드웨어에 독립적인 환경을 제공한다. JVM은 크게 ClassLoader, Runtime Data Area, Execution Engine, Native Interface, Garbage Collector 등의 구성 요소로 이루어진다. JVM의 구성요소1. ClassLoader (클래스 로더)- Java 컴파일러가 생성한 .class 파일(바이트코드)을 JVM 내부(Runtime Data Area)로 로드하는 역할을 한다. - 클래스를 메모리에 로드하고 링크 및 초기화를 수행. 2. Runtime Data Area (런타임 데이터 영역)- JVM이 실행되는..
-
[리버스 프록시(Reverse Proxy)] 란서버 & 프레임워크/Server 2024. 11. 21. 08:43
리버스 프록시(Reverse Proxy)는 클라이언트의 요청을 받아서 이를 실제 서버로 전달하고, 서버에서 반환된 응답을 클라이언트로 전달하는 중간 서버 역할을 하는 시스템이다. 특징- 클라이언트는 원본 서버와 직접 통신하지 않는다. 클라이언트는 리버스 프록시 서버를 원본 서버처럼 인식하기 때문- 리버스 프록시는 원본 서버의 앞단에 배치되기 때문에 중간 서버 역할을 할 수 있는 것이다. 주요 용도1. 로드 밸런싱 - 여러 대의 서버에 요청을 분산시켜 트래픽을 효율적으로 관리한다.2. 보안 강화 - 원본 서버의 IP를 숨겨 외부로부터 보호할 수 있다. - SSL/TLS 암호화를 처리하여 원본 서버의 부담을 줄일 수 있다.3. 캐싱 - 자주 요청되는 데이터를 캐싱해서 성능을 향상시키고..
-
Swift - UITraitCollection에 대해서 알아보자플랫폼/iOS 2024. 1. 21. 12:18
프로젝트를 진행하면서 UITraitCollection의 userInterfaceStyle을 사용하여 다크 모드와 라이트 모드를 다루는 코드를 작성하게 되었는데, UITraitCollection에 대해서 더 공부하고 싶어져서 글을 작성하게 되었다. UITraitCollection 의 단어뜻을 해석해보면 UI에 대한 특성들 모음집 이라고 해석해 볼 수 있다. 애플의 공식문서를 읽어보니 단어뜻이랑 거의 일치하는 것 같다. https://developer.apple.com/documentation/uikit/uitraitcollection UITraitCollection | Apple Developer Documentation A collection of data that represents the enviro..
-
Swift - ARC (Automatic Reference Counting)플랫폼/iOS 2023. 12. 1. 18:56
ARC (Automatic Reference Counting)은 Swift에서 사용되는 메모리 관리 모델이다. ARC는 앱에서 인스턴스를 생성하고 참조할 때마다 해당 인스턴스에 대한 참조 횟수를 추적하고, 참조 횟수가 0이 되면 해당 인스턴스를 메모리에서 해제한다. ARC는 주로 힙 영역에 할당된 객체들을 자동으로 관리한다. 그렇기 때문에 명시적인 작업을 따로 해주지 않아도 되는데, 강한 참조 순환 (Strong Reference Cycle)이 발생했을때는 메모리 누수(Memory Leak)가 발생하기 때문에 명시적인 작업을 해주어야 한다. 작업은 크게 두가지로 나뉜다. 약한 참조 강한 참조순환 상태는 객체가 서로 강한 참조를 하고있는 상태이기때문에 RC(Reference Counting)값이 존재한다...
-
Swift - 타입 캐스팅플랫폼/iOS 2023. 11. 22. 23:27
Swift에서 타입 캐스팅이란 인스턴스의 타입을 확인하거나 변경하는 프로세스를 의미한다. 타입캐스팅은 as 연산자를 사용하여 해줄수 있다. class Animal { var species: String = "Animal" } class Dog: Animal { var name: String = "dog1" } 두개의 class가 있다고 해보자, Dog 클래스는 Animal 클래스를 상속한 클래스이다. let animal: Animal = Dog() 이와같이 타입은 Animal로 작성하고 인스턴스는 Dog 클래스로 만들어 주면 메모리의 힙 공간에는 Dog 클래스를 위한 인스턴스가 생성되게 된다. 즉, species와 name 저장 속성을 위한 메모리 공간을 따로 만들어 주는 것이다. 이상황에서는 타입을 D..