ShowMyCNFT, SpringBoot 세팅, SDK, Gradle
Gradle은 거의 모든 유형의 소프트웨어를 빌드할 수 있을 만큼 유연한 오픈 소스 빌드 자동화 도구입니다. Gradle은 빌드하려는 항목 또는 빌드 방법에 대해 거의 가정하지 않기 때문에, Gradle을 특히 유연하게 만듭니다.Gradle은 다음 기본 사항을 기반으로
자바 애플리케이션 개발 시 로깅은 중요한 요소입니다. 로깅은 애플리케이션의 실행 상태와 이벤트 정보를 기록하여 디버깅, 모니터링, 성능 분석 등에 도움을 줍니다. (현업에서는 System.out.println 대신 사용한다고함) 이를 위해 SLF4J와 LOGBACK는
사실상 Spring boot의 hello world 격인 Basic Application을 명확하게 알고가야하지 않을까? 라는 생각이 들어 정리하기로 마음먹었습니다.Spring boot 스타터로 스프링부트 프로젝트를 생성할 경우 아래와 같이 main이 자동으로 생성되는
이번에는 Thymeleaf를 사용하여 동적인 웹 페이지를 생성하는 방법에 대해 알아보겠습니다. Thymeleaf는 Java와 Spring 프레임워크와 함께 사용되는 서버 사이드 템플릿 엔진입니다.이 글에서는 간단한 예제인 HelloController를 통해 Thymel
콘트롤러에서 @ResponseBody 의존성을 삽입했을 경우 \- HTTP의 BODY에 문자 내용을 직접 반환viewResolver 대신에 HttpMessageConverter가 동작기본 문자 처리: StringHttpMessageConverter기본 객체 처리: M
3-tier 레이어는 소프트웨어를 설계하는 방식 중 하나로, 사용자 인터페이스, 비즈니스 로직, 데이터 저장소 등의 기능을 각각 독립적인 계층으로 나누어 개발하는 방식입니다. 이 방식은 애플리케이션을 유지보수하기 쉽고 확장하기 용이하게 만들어주며, 각 계층이 독립적으로
MVC는 Model-View-Controller의 약어로, 소프트웨어 개발에서 많이 사용되는 디자인 패턴입니다. 이 패턴은 소프트웨어를 세 가지 부분으로 나눕니다.Model (모델) - 데이터를 처리합니다.View (뷰) - 사용자에게 결과를 보여줍니다.Controll
4/5
MVC 패턴에서 Controller는 사용자의 요청을 처리하고, 해당 요청에 대한 비즈니스 로직을 호출하며, 그 결과를 View에 전달하는 부분을 담당합니다. Controller는 다음과 같은 구성요소로 이루어져 있습니다.Front Controller는 모든 요청을 받
Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있습니다.전통적인 Spring MVC의 컨트롤러인 @Controller와 Restuful 웹서비스의 컨트롤러인 @RestController의 주요한 차이점은 H
MVC 패턴에서 View는 사용자에게 정보를 보여주는 역할을 합니다. View는 모델로부터 데이터를 가져와 사용자가 볼 수 있는 형태로 보여줍니다. View는 다음과 같은 구성요소로 이루어져 있습니다.Template은 View에서 데이터를 동적으로 출력하는데 사용되는
Lombok은 자바에서 Getter, Setter, 생성자, toString 등과 같은 자주 사용되는 코드를 어노테이션으로 자동 생성해주는 라이브러리입니다.Lombok은 코드 중복을 줄이고, 개발 생산성을 높이기 위해 만들어졌습니다.Lombok을 사용하면, 아래와 같은
JUnit은 자바 언어를 기반으로 하는 단위 테스트 프레임워크입니다. JUnit은 자바 개발 환경에서 사용되며, 자바 프로그램의 일부분을 테스트하는 데 사용됩니다.JUnit은 테스트 코드 작성과 실행, 그리고 테스트 결과 분석과 보고를 제공합니다. JUnit은 테스트를
DB와 연동하고 스프링 빈을 주입하는 통합테스트를 해야될 때가 있습니다.일반적으로는 단위테스트로 모든 기능을 분할하여 최소한으로 진행하는 것이 속도면이나 독립성면에서 유리하다고 생각하지만, 분명히 통합테스트가 필요한 상황이 있습니다.실제 운영 환경에서 사용될 클래스들을
Spring은 Java 기반의 개발 프레임워크로, 데이터베이스와의 상호 작용을 위해 다양한 옵션을 제공합니다. 이 블로그에서는 Spring 개발에서 자주 사용되는 JDBC, JdbcTemplate, JPA, Spring Data JPA의 특징과 차이점을 예제를 통해 설
JPA (Java Persistence API)는 Java에서 ORM (Object-Relational Mapping) 기술을 지원하기 위해 만들어진 인터페이스입니다. JPA는 ORM 프레임워크와의 통합을 쉽게 할 수 있도록 제공됩니다.JPA는 Java EE 5 버전부
@Configuration 어노테이션은 스프링 컨텍스트에게 해당 클래스가 구성 정보를 제공한다는 것을 알려주는 역할을 합니다. @Bean 어노테이션은 @Configuration 어노테이션이 붙은 클래스 내에서 메서드에 적용되어 스프링 컨텍스트에게 해당 메서드가 빈을 생
Spring에서는 Spring의 DI Container에 의해 관리되는 POJO(Plain Old Java Objec)를 Bean이라고 부르며, 이러한 Bean들은 Spring을 구성하는 핵심 요소입니다.Spring의 Bean을 정리하면 아래와 같습니다.POJO(Pla
스프링 빈의 생명주기(Lifecycle)에 대해서 알아보겠습니다.스프링 빈은 스프링 컨테이너에 의해 생성되고, 초기화되며, 사용되며, 소멸됩니다. 이러한 생명주기를 관리하기 위해 스프링은 다양한 콜백 메서드(callback method)를 제공합니다. 콜백 메서드는 스
Java에서 Serializable은 객체 직렬화를 위한 인터페이스입니다. 객체 직렬화(serialization)란, 객체를 이진 데이터로 변환하는 것을 의미합니다. 이진 데이터로 변환된 객체는 저장되거나 네트워크를 통해 전송될 수 있습니다.Java에서 Serializ
의존성 주입(Dependency Injection)은 객체 간의 의존 관계를 컨테이너가 자동으로 관리하도록 하는 디자인 패턴입니다. 객체가 사용하는 다른 객체를 직접 생성하거나 관리하는 것이 아니라, 컨테이너에서 필요한 객체를 생성하고 관리하며, 필요한 경우 객체 간의
H2는 자바로 작성된 인메모리 데이터베이스입니다. H2 데이터베이스는 파일 시스템이 아니라 메모리에 데이터를 저장하기 때문에, 속도가 빠르고 가벼워서 테스트나 프로토타입 개발 등에 자주 사용됩니다.H2 데이터베이스는 JDBC 드라이버를 제공하므로, Java나 Kotli
명확한 아키텍처를 위한 한걸음..앞서 설명했던 내용인 Entity와 DTO를 다시 한번 간단히 설명해 보겠습니다.Entity 클래스는 도메인 단에서 데이터베이스에서 사용되는 테이블과 매핑되는 클래스입니다. 즉, 데이터베이스에 저장되는 데이터를 나타내는 클래스입니다. E
더티 체킹(dirty checking)은 JPA에서 영속성 컨텍스트(Persistence Context)가 관리하는 엔티티 객체의 상태 변화를 감지하는 기능입니다. 영속성 컨텍스트는 엔티티 객체를 로딩하거나, 생성하거나, 변경사항을 추적하는 등의 역할을 합니다.이때,
JPA Auditing은 JPA를 이용하여 엔티티를 저장, 수정, 삭제할 때, 자동으로 생성일(createdDate)과 수정일(modifiedDate)을 처리하는 기능을 제공합니다. JPA Auditing을 사용하면, 엔티티 객체를 생성하거나 수정할 때 자동으로 생성일
일반적으로 웹 개발에 있어 템플릿 엔진이란, 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어를 이야기합니다.서버 템플릿 엔진은 서버 측에서 HTML, CSS, JavaScript 등의 마크업 언어와 로직 코드를 조합하여 동적인 웹 페이지를 생
@Query, Spring Data JPA, 그리고 Querydsl은 모두 Spring Framework에서 제공하는 데이터베이스 쿼리를 작성하는 방법입니다.@Query는 JPA에서 제공하는 어노테이션으로, 사용자가 직접 SQL 쿼리를 작성할 수 있습니다. 이는 간단한
스프링 시큐리티(Spring Security)는 스프링 기반의 애플리케이션 보안 프레임워크입니다. 스프링 시큐리티는 애플리케이션 보안에 필요한 인증(Authentication), 권한 부여(Authorization), 보안 설정(Security Configuration
@Enumerated(EnumType.STRING)은 JPA에서 열거형(Enum) 타입을 매핑할 때 사용하는 애너테이션입니다. 이 애너테이션을 사용하면 열거형 상수가 데이터베이스에 문자열 형태로 저장되고 조회됩니다.예를 들어, 다음과 같은 열거형이 있다고 가정해보겠습니
위 코드를 작성하는 도중 antMatchers에서 에러가 발생하였습니다. 찾아보니HttpSecurity 객체에서 authorizeRequests() 메소드를 호출한 다음, 반환된 ExpressionInterceptUrlRegistry 객체에서 authorizeReque
spring security가 6.0 버전 이후로 많은 변경이 생겼습니다. WebSecurityConfigurerAdapter 클래스를 상속 받아 오버라이딩하여 처리하던 방식에서 벗어나서filterChain을 Bean으로 등록하여 사용합니다.@Bean 어노테이션을 붙이
DDL관련된 에러로 추측하고 디버깅을 통해 흐름을 따라가 보았습니다.SSO인증 로그인을 시도 -> Security Confing 필터 동작 -> UserService 인터페이스의 구현체 동작 -> userRepository에서 에러발생userRepository 는 //
톰캣, DB, Redis
AOP를 사용하지 않고 시간을 측정하려면, 시간 측정 코드를 각각의 메서드에 직접 작성해야 합니다. 이는 중복된 코드를 발생시키고, 유지보수를 어렵게 만들 수 있습니다. 또한, 시간 측정 로직을 수정하거나 제거해야 할 때에도 모든 메서드를 수정해야 하므로 번거로운 작업