목록JAVA (57)
도찐개찐
@Scheduled Spring Boot에서 @Scheduled 어노테이션을 사용하면 일정한 시간 간격으로, 혹은 특정 시간에 코드가 실행되도록 설정할 수 있다. 주기적으로 실행해야 하는 작업이 있을 때 적용해 쉽게 사용하자. @Scheduled 사용법 @Scheduled 어노테이션을 사용하기 위해 다음과 같이 Application Class에 @EnableScheduling을 추가한다. @EnableScheduling @SpringBootApplication public class SchedulerApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } 그리고 실..
https://dev-truly.tistory.com/entry/SpringBoot-MongoDB-%EC%84%A4%EC%B9%98-%EB%B0%8F-MongoTemplate-vs-MongoRepository-%EB%B9%88%EB%93%B1%EB%A1%9D-%EA%B4%80%EB%A6%AC [SpringBoot] MongoDB 설치 및 MongoTemplate vs MongoRepository 빈등록 관리 [MongoDB] 사용자 계정 생성 및 권한 관리 일반적으로 DB 서버에서 사용하는 계정의 종류는 크게 두 가지로 나눌 수 있습니다. DB 관리자가 사용하는 어드민용 계정과 실제 애플리케이션 서버에서 DB blog.dev-truly.dev _class 필드는 무슨 필드지? 스프링 부트(Spring B..
[MongoDB] 사용자 계정 생성 및 권한 관리 일반적으로 DB 서버에서 사용하는 계정의 종류는 크게 두 가지로 나눌 수 있습니다. DB 관리자가 사용하는 어드민용 계정과 실제 애플리케이션 서버에서 DB 접근 시 사용하는 사용자(서비스) 계정 blog.dev-truly.dev 1. spring-boot-starter-data-mongodb 의존성 주입 https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-mongodb 상기 경로에서 본인 환경에 맞는 버전의 spring-boot-starter-data-mongodb 의존성을 주입해 줍니다. # build.gradle implementation group: ..
Build 할 때 java.lang.NoClassDefFoundError: org/gradle/wrapper/GradleWrapperMain 에러 해결 원인: gradle wrapper 실행파일(gradle-wrapper.jar)이 없어서 문제가 생김. (.gitignore 를 확인 커밋할때 제외될 가능성이 높음) 해결방법 gradle 설치 $ wget https://services.gradle.org/distributions/gradle-7.6-bin.zip $ mkdir /opt/gradle $ sudo mkdir /opt/gradle $ sudo unzip -d /opt/gradle gradle-7.6-bin.zip $ export PATH=$PATH:/opt/gradle/gradle-7.6/bin..
Mapper XML과 DAO Interface를 연결해주는 MapperFactoryBean을 사용하지 않고, SqlSession을 DAOImpl 클래스에 의존성을 주입(DI)해 사용해보자. MapperFactoryBean은 **DaoImpl 클래스가 필요 없는 대신 DAO 인터페이스가 늘어날 때마다 root-context.xml에 bean을 등록해줘야 하는 반면에 SqlSession을 **DaoImpl 클래스에 DI해 사용하면 bean 객체를 추가해주지 않아도 되지만 DAO 인터페이스를 구현하는 DAOImpl 클래스를 필요로 한다. root-context.xml을 열어 MapperFactoryBean 객체를 추가해줬던 코드를 주석 처리한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15..
들어가며 transient키워드를 이해하기 위해서는 Serialize에 대한 이해가 필요합니다. https://dev-truly.tistory.com/entry/JAVA-%EC%A7%81%EB%A0%AC%ED%99%94Serialize Java transient이란? transient는 Serialize하는 과정에 제외하고 싶은 경우 선언하는 키워드입니다. 왜(Why) 필요할까요? 패스워드와 같은 보안정보가 직렬화(Serialize) 과정에서 제외하고 싶은 경우에 적용합니다. 다양한 이유로 데이터를 전송을 하고 싶지 않을 때 선언할 수 있습니다. Example Model class Member implements Serializable { private String name; private String ..
직렬화(Serialize)란? 직렬화(Serialize) 자바 시스템 내부에서 사용되는 Object 또는 Data를 외부의 자바 시스템에서도 사용할 수 있도록 byte 형태로 데이터를 변환하는 기술. JVM(Java Virtual Machine 이하 JVM)의 메모리에 상주(힙 또는 스택)되어 있는 객체 데이터를 바이트 형태로 변환하는 기술 역직렬화(Deserialize) byte로 변환된 Data를 원래대로 Object나 Data로 변환하는 기술을 역직렬화(Deserialize)라고 부릅니다. 직렬화된 바이트 형태의 데이터를 객체로 변환해서 JVM으로 상주시키는 형태. 직렬화(Serialize) 시작하기 직렬화(Serialize) 조건 java.io.Serializable 인터페이스를 상속받은 객체는 ..
Rest Api 애플리케이션 개발에 있어 API 스펙에 대한 문서작업은 적지 않은 시간을 요구합니다. 또한 운영을 하게 되면서 지속적으로 문서를 업데이트하는 것 또한 많은 리소스가 필요합니다. 이러한 시간을 단축시키기 위해 문서 자동화 프레임 워크를 이용하는 방법이 있습니다. 대표적으로 Swagger, Spring REST Docs가 있는데 그중 Swagger 적용 방법에 대해 알아보겠습니다. 1. Dependency 설정 Maven io.springfox springfox-swagger2 2.9.2 io.springfox springfox-swagger-ui 2.9.2 Gradle // https://mvnrepository.com/artifact/io.springfox/springfox-swagger..