본문 바로가기

IT 공부/자바와 웹 애플리케이션37

[자바] - 커넥션 풀(HikariCP)과 DataSource 스펙 1. JDBC 프로그래밍의 문제점 JDBC는 JavaSE의 표준 스펙 중 하나로, 데이터베이스 서버와 연결해 SQL 쿼리를 실행할 수 있게 만든 자바 표준 API다. API에 불과하므로 구체적인 데이터베이스와 연결해 사용하기 위해서는 데이터베이스 회사(MySQL, Oracle, MariaDB, ....)에서 만든 JDBC 드라이버가 필요하다. 이 드라이버 라이브러리는 maven repository에서 아주 쉽게 다운받을 수 있다. // 커넥션에 필요한 정보 String url = "jdbc:mariadb://localhost:3306/db"; String user = "user"; String password = "1234"; // JDBC 사용 코드 Class.forName("org.mariadb.jd.. 2024. 1. 11.
[JPA] - 자바 진영의 데이터베이스 처리 기술 발전 1. JPA와 Mybatis의 차이 1) JDBC의 문제는 무엇인가 우선 자바 애플리케이션이 내부적으로 데이터베이스와 상호 작용이 필요할 때, 사용할 수 있는 기술은 크게 보면 JDBC, MyBatis, JPA(with QueryDSL) 등이 있다는 점을 기억하자. 그리고 MyBatis와 JPA는 모두 JDBC의 단점을 해소하기 위해 사용되는 기술이라는 점도! 결국 JPA와 MyBatis를 이해하기 위해서는 JDBC의 단점이 무엇인지 아는 것으로 시작해야 한다. 자바 애플리케이션은, 특히 백엔드라면, 애플리케이션 로직에 따라 DB를 활용해야 하는 순간이 반드시 오기 마련이다. 그때 데이터베이스 상호작용의 상세 사항을 숨기고(정보 은닉), 적절한 캡슐화를 통해 자바 애플리케이션 입장에서는 자바 인터페이스에.. 2024. 1. 9.
[스프링] - 스프링이 Java Bean이 유효성을 검증하는 방법 ※ 이 포스팅은 스프링 프레임워크가 어떻게 @Valid 같은 어노테이션을 체크하고 실행하는지 그 원리를 공부한 것을 정리한 포스팅입니다. 저에게 어려운 주제라 오류가 있을 수 있습니다. 1. 유효성 검증은 JavaEE 스펙. 스프링 프레임워크는 자동으로 @Valid와 같은 어노테이션을 식별하고, 관련 데이터의 각종 유효성들을 검증해준다. 그리고 그 결과를 BindingResult 객체에 정보를 저장하고 컨트롤러에게 넘겨준다. 이렇게 이야기를 듣고 기술을 쓰면은 마치 유효성 검증이 스프링의 특수한 기능처럼 들린다. 그러나 파고 들더가면 오히려 스프링이 유효성 검증 스펙을 사용하는 입장일 뿐이라는 것이 드러난다. 즉, 유효성 검사와 관련된 API와 기능들은 스프링에 종속된 개념들이 아니다. 우선, 유효성 검.. 2024. 1. 8.
[스프링] 한글 깨짐 문제의 원리와 해결 쿼리 스트링이나 POST의 body 파라미터로 한글 데이터를 전달하면 자바 애플리케이션 내부에서 한글이 깨져버린다. [자바] - 한글이 깨지는 문제의 원리 1. 문자열과 인코딩 문자열을 다루기 위해서는 인코딩(encoding)에 예민해야 한다. 컴퓨터는 0과 1로 이루어진 비트를 기반으로 정보를 처리한다. 따라서 컴퓨터로 유용한 일을 하기 위해서는 0과 1 linocraft.tistory.com 한글이 깨지는 원리는 위 링크에 포스팅했다. 다만 이것은 인코딩과 관련된 일반적인 문제의 원리를 다루므로 구체적으로 스프링에서 한글이 깨지는 근거는 아래의 링크에서 찾을 수 있다. [서블릿] - ServletRequest의 Character Encoding을 utf-8로 설정해야 하는 이유 1. 서블릿 Reque.. 2024. 1. 8.