반응형

IT 98

[Java] 객체지향의 4대 특징 - 캡슐화, 추상화, 상속, 다형성

☕️ 캡슐화연관된 데이터(변수)와 기능(메소드)을 하나로 묶고, 불필요한 요소를 외부에 노출되지 않도록 설계하는 방식을 뜻한다. 자바에서는 접근 제어자(public, private, default, protected)를 통해 캡슐화를 구현할 수 있다.class Student { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { ..

IT 2025.01.20

[Java] 자바: 자바의 개념과 특징

☕️ Java란?자바는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다.   Write Once, Run Anywhere  직역을 하면, '한 번 작성하면 어디에서나 실행된다'는 의미로, 자바로 개발된 프로그램은 자바 실행 환경 JRE가 설치된 모든 환경에서 실행이 가능하다는 것을 의미한다. 이는 JVM(자바 가상 머신, Java Virtual Machine)이라는 특수한 가상 머신에 의하여 어느 플랫폼에서나 동일한 형태로 실행을 보장받을 수 있기 때문이다.    ☕️ Java의 특징호환성이 높은 언어- 자바는 JVM(Java Virtual Machine) 위에서 실행되기 때문에 운영체제의 종류에 상관없이 실행된다.  객체지향 언어-..

IT 2025.01.20

[SpringBoot] 스프링부트 콘솔 배너 변경

🌱 스프링 부트 배너란?스프링부트를 실행하면 흔히 아래와 같은 콘솔 로그를 볼 수 있을 것이다.뭔가 밋밋하기도 하고 계속 보면 질리는 것 같기도 하다.우연히 배너를 바꿀 수 있다는 것을 알게되었고, 단계별로 변경 방법을 소개하도록 하겠다.   🌱 스프링 부트 배너 변경하기1. 배너 파일 만들기- src/main/resources 하위에 banner.txt 파일을 생성한다.   2. 배너 작성하기- 콘솔에 출력하고 싶은 내용을 작성한다.   3. 프로젝트 실행- 프로젝트를 실행시키고 콘솔을 확인한다.   🤯 배너 만들기- 배너를 직접 만들 수 있으면 좋겠지만, 생각만해도 너무 머리가 아픈 일이다.   다행히(?) 배너를 제공해주는 고마운 사이트들이 있어서,   우리가 잘하는 'Ctrl + C / Ct..

IT 2025.01.20

[Mybatis] 조회쿼리 성능 향상

🐧 Fetch Size 란?Oracle에서 SQL를 수행하여 10,000건에 데이터를 가져온다고 가정할 때, 서버와 클라이언트에서는 총 1,000번의 통신을 하게 된다. 이는 Fetch Size의 default 값이 10이기 때문이다. 이와 같은 결과로 유추해 보았을 때, Fetch Size는 Oracle에서 결과값을 가져올 때 한 번에 가져오는 사이즈를 뜻하는 것임을 짐작할 수 있을 것이다. 즉, JDBC는 Oracle에서 결과값을 fetch 할 때 한꺼번에 모두 가져오는 것이 아니라 부분 범위로 결과를 나누어서 가져오게 되는데 이 단위를 Fetch Size라고 한다.   🐧 Mybatis 적용Mybatis를 사용할 경우, 다음과 같이 Fetch Size를 설정할 수 있다. SELECT * F..

IT 2025.01.19

[Security] Keycloak 설치 및 설정

🔐 Keycloak 이란?ID 및 액세스 관리 솔루션을 제공하는 오픈소스이다.쉽게 말하면 인증(Authentication)과 인가(Authorization)를 쉽게 해주고 SSO(Single-Sign-On)를 가능하게 해주는 오픈소스이다.  🔐 Keycloak 설치 및 실행https://www.keycloak.org/downloads에 접속하여 설치하고자 하는 버전을 선택한 후 설치한다.설치가 완료되었다면 bin 디렉터리로 이동하여 쉘을 실행한다.- 윈도우 : standalone.bat- 리눅스 / 맥 : standalone.sh  🔐 Keycloak 설정쉘 실행이 완료된 후 'http://localhost:8080/auth'로 접속하면 다음과 같은 웰컴 페이지를 볼 수 있을 것이다. 이제 계정생성..

IT 2025.01.19

[Security] Keycloak 소개

🔐 Keycloak 이란?ID 및 액세스 관리 솔루션을 제공하는 오픈소스이다.쉽게 말하면 인증(Authentication)과 인가(Authorization)를 쉽게 해주고 SSO(Single-Sign-On)를 가능하게 해주는 오픈소스이다.📖 SSO 란?Single Sign-On의 약자로 한 번의 인증 과정으로 여러 컴퓨터 상의 자원을 이용 가능하게 하는 인증 기능을 뜻한다. 싱글 사인온, 단일 계정 로그인, 단일 인증이라고 한다.만약 [Web App1]과 [Web App2]라는 2개의 서비스가 있을 때, [Web App1]에 로그인 후 작업을 하다가 [Web App2]에서 작업을 할 일이 생긴다면 [Web App2]에서도 로그인이 필요하다. 하지만 다음 그림처럼 SSO를 도입하게 된다면, 한 번의 로..

IT 2025.01.19

[SpringBoot] Versioning

🌱 Versioning 이란?API의 기능이 변경될 때, 기존에 서비스를 제공받고 있는 클라이언트는 영향을 받지 않아야 한다. 이를 위해 API에 버전을 적용하여 관리하는 것을 Versioning이라고 한다. API가 Version별로 제공된다면 클라이언트는 API의 변경여부와 상관없이 기존 서비스를 지속적으로 이용할 수 있으며, 원한다면 새로운 버전에 맞춰 개발을 진행하여 신규 기능을 제공받을 수도 있게 된다.   🌱 Versioning 전략Versioning 전략은 크게 다음과 같이 4가지로 나눌 수 있다.URI를 이용한 방법Request Parameter를 이용한 방법헤더를 이용한 방법MIME Type을 이용한 방법   🌱 URI 이용REST API의 버전을 URI 경로에 명시하는 방법이다.@..

IT 2025.01.19

[SpringBoot] HATEOAS

🌱 HATEOAS란?HATEOAS(Hypermedia As The Engine Of Application State)란 REST API를 통해 클라이언트와 서버 간에 동적인 상호작용을 가능케 하는 기술을 의미한다. 예를 들어, 클라이언트가 사용자를 조회했을 때 사용자 정보만 응답하는 것이 아니라 '사용자 수정', '사용자 삭제' 등을 처리할 수 있는 링크를 같이 포함하여 응답하는 것을 예시로 들 수 있다.   🌱 HATEOAS 사용 예시앞서 설명한 내용을 토대로 실제 응답값이 어떻게 변화하는지 알아보자.특정 사용자를 조회한다고 가정했을 때, HATEOAS를 적용하기 전에는 다음과 같이 사용자 정보만을 응답하게 된다.{ "resultCode": "0000", "resultData": { ..

IT 2025.01.19

[JPA] Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "start_value" not found

🐛 오류 현상JPA 적용 후 프로젝트 RUN 상황 중 오류 발생 - Dependency... org.springframework.boot spring-boot-starter-data-jpa com.h2database h2... - 오류 로그org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method fa..

IT 2025.01.19
반응형