본문 바로가기

java

(30)
DriverManager 이해하고 사용하기 안녕하세요, 이번 글에서는 Java에서 Connection을 얻는 방법 중에 하나인 DriverManager를 통한 커넥션 획득에 대해 적어보겠습니다. DriverManager앞선 글(JDBC)에서 애플리케이션에서 Database를 사용하려면 아래 세 가지 행위가 필요하다 말씀드렸는데요,커넥션을 연결한다.SQL을 Database 서버에 전달한다.결과를 응답받는다.JDBC에서는 Connection을 연결한 뒤 반환받는 Connection Interface를 통해 SQL을 전달하고, 커밋 혹은 롤백을 할 수 있도록 구성되어 있습니다. Connection을 획득하면, 해당 객체를 활용해서 그 뒤의 작업들을 하실 수 있습니다. 따라서 각 Database 벤더사들은 해당 Connection을 가져오는 방법을 구..
JDBC 이해하고 사용해보기 안녕하세요, 오늘 포스팅에서는 JDBC란 무엇이며 어떻게 사용하는 지에 대해 간략하게 포스팅을 해보려고 합니다. 애플리케이션에서 Database를 사용하는 방법흔히 서비스를 개발하는 백엔드 엔지니어들은 애플리케이션을 개발하면서 database를 데이터 저장 수단으로 사용하게 됩니다. database를 순수하게 사용하려면 크게 세가지의 과정이 필요한데요. 커넥션을 연결한다.SQL을 Database 서버에 전달한다.결과를 응답받는다.이를 도식화 하면 아래 그림과 같이 사용되게 됩니다. 만약 내가 개발한 서버가 Oracle DBMS를 사용한다면 Oracle의 Connection을 획득하고, Oracle sql을 전달하고, 결과를 받아서 애플리케이션 서버에서 사용하면 됩니다.문제점이렇게 개발되어 운영을 잘 하다..
Spring Boot의 의존성 관리 및 Bean 생성 과정 안녕하세요. 이번 포스팅에서는 SpringBoot가 어떻게 자동적으로 필요한 Dependencies를 받아오는지, 필요한 Bean들을 생성하는지에 대한 포스팅을 진행해보려 합니다. Dependencies 관리 만약에 저희가 maven project로 다음의 dependency만 추가한 뒤, package를 실행해 보면 어떠한 일이 벌어질까요? org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test 보시는 바와 같이 정말 많은 의존성 패키지들이 추가됩니다. 심지어 저희는 spring-boot-starter-web이나 spring-boot-starter-test의 버전조차 명시하지 않았는..
[Java] JaCoCo를 활용하여 code coverage 측정하기 안녕하세요. 이번 포스팅에서는 JaCoCo라는 Java Code Coverage Library를 활용하여 코드 커버리지를 간단한 예제와 함께 측정해보겠습니다. 우선 Code Coverage란 무엇일까요? Code Coverage Code Coverage란 소프트웨어에서 test code가 본 코드를 얼마나 커버하고 있냐를 측정해주는 지표입니다. 테스트를 진행하였을 때 코드 자체가 몇% 나 실행되었느냐로 생각하실 수 있을 것입니다. 원래 원칙적으로 test code는 모든 시나리오에 대해서 설계되어야 합니다. 실제로 배포하는 서비스라면 더욱더 모든 시나리오를 커버하려 합니다. 하지만 현실적으로 내가 지금 작성한 테스트 케이스가 모든 케이스를 커버하는지를 객관적인 지표로 확인할 수 있는 방법 중에 하나가 C..
[ SpringBoot ] 장르 기반 간단한 영화 추천 API 설계하기 #2 안녕하세요. https://chanho0912.tistory.com/93 [ SpringBoot ] 장르 기반 간단한 영화 추천 API 설계하기 #1 안녕하세요. 이번에는 간단한 토이 프로젝트를 소개해드리겠습니다. 간단하게 영화 추천 API를 설계해보려 합니다. 전체 코드는 https://github.com/KimChanHoLeeJunSung/MovieRecommendationApplication GitHub -.. chanho0912.tistory.com 저번 포스팅에 이어 이번 포스팅에서는 Spring data JPA와 QueryDSL을 사용하여 여러 API를 만들어보겠습니다. Controller package com._chanho.movie_recommendation.movie; import com..
[ SpringBoot ] 장르 기반 간단한 영화 추천 API 설계하기 #1 안녕하세요. 이번에는 간단한 토이 프로젝트를 소개해드리겠습니다. 간단하게 영화 추천 API를 설계해보려 합니다. 전체 코드는 https://github.com/KimChanHoLeeJunSung/MovieRecommendationApplication GitHub - KimChanHoLeeJunSung/MovieRecommendationApplication Contribute to KimChanHoLeeJunSung/MovieRecommendationApplication development by creating an account on GitHub. github.com 해당 레포지토리에 Public으로 공개해 놓긴 했는데... 포스팅을 따라 하시면서 간단하게 해 보시면 좋을 것 같습니다. 시나리오 0. ..
[Spring Cloud] Spring Cloud와 Eureka !! 안녕하세요. 이번 포스팅에서는 Spring Cloud와 Eureka server에 대해서 알아보고 간단하게 유레카 서버와 service 등록을 진행해보겠습니다. Spring Cloud 이제는 monolithic한 서비스 개발 방식을 넘어 마이크로 서비스로 실제 대부분의 서비스들이 운용됩니다. Spring Cloud란 마이크로 서비스의개발, 배포, 운영에 필요한 아키텍처를 쉽게 구성할 수 있도록 지원하는 Spring Boot기반의 프레임워크입니다. 유레카에 대한 설명에 앞서, 만약 하나의 서비스가 네 개의 인스턴스를 사용해서 운용되고 있다고 생각해보겠습니다. 실제 사용자는 이 서비스에 정의된 본인이 필요한 요청을 보낼 겁니다. 이렇게 여러 개로 분산되어 서비스가 운용되고 있다면, 각 요청에 맞게 HashM..
[Spring/SpringBoot] Spring Security - Remember Me 안녕하세요. 이번 포스팅에서는 Spring의 Remember-me 즉 로그인 기억하기 기능에 대해 살펴보겠습니다. Session 보통 일반적인 웹 서비스에서, Client가 로그인을 하게 되면 세션 Id가 서버로부터 부여됩니다. 이는 이 사용자에 대한 인증이며, 서버에서 따로 관리하며 이 인증정보로 서버의 리소스들을 접근할 수 있게 됩니다. 하지만 당연하게도 이 세션 Id는 취약합니다. Client가 지워버릴 수도 있고, Server가 꺼졌다가 재시동되면 당연히 Client들의 세션 Id를 보관하던 저장소도 사라지게 됩니다. 이렇게 되면 로그인 정보가 사라지게 됩니다. Spring tomcat은 기본적으로 session timeout을 30분 정도로 가지고 있습니다. 이 말은 로그인을 해도 30분이 지나..