JAVA 46

[ Java ] - SMS 전송하기 (feat. naver cloud platform)

SMS 전송하기 (feat. naver cloud platform) 1. naver cloud platform 회원 가입 및 로그인 https://www.ncloud.com/ 옆의 링크를 통해 naver cloud에 들어가서 회원가입 및 로그인을 한다. 기본적으로 네이버 아이디가 있는 경우 네이버 아이디를 통한 간편 가입이 가능하다. 2. accessKey, secretKey 발급받기 로그인 후 상단의 메뉴바에서 마이페이지 - 계정 관리 - 인증키 관리가 있는데, 인증키 관리를 클릭하여 준다. 비밀번호 확인 과정이 있는데, 비밀번호를 입력해주면 아래와 같이 Api 인증키 관련 페이지가 나오는데 여기서 신규 API 인증키 생성을 클릭하여 생성하여 준다. 기본적으로 생성된 AccessKeyId와 Secret..

JAVA/Spring Boot 2023.05.17

[ JAVA ] - 파일 작업하기 (파일 읽기)

파일 작업하기 (파일 읽기) HTML 삽입 미리보기할 수 없는 소스 MessageFormat 경우 데이터를 일정한 형식으로 출력할 수 있게 도와주는 클래스이다. 예를 들어 아래의 코드의 경우 data.txt 파일을 불러와서 "INSER INTO VALUES ({0}, {1}, {2}, {3})"의 {0}, {1}, {2}, {3}의 위치에 데이터가 들어간 형태로 출력하여 준다. public class MessageFormatEx551 { public static void main(String[] args) throws Exception { String tableName ="USER_INFO"; String fileName = "data.txt"; String msg = "INSERT INTO " + ta..

JAVA 2023.05.11

[ JAVA ] - 커스텀 어노테이션 만드는 법

어노테이션 (:annotation) annotation은 사전적으로는 주석의 의미를 가지며, 프로그래밍 관점에서 어노테이션은 코드에 대한 부가 정보를 제공하는 메타 데이터이라고 할 수 있다. 어노테이션을 통하여 코드에 대한 설명과 컴파일러 명령 등을 표현할 수 있다. 이를 통해 개발자는 더욱 편리하고 가독성 높은 개발이 가능한다. 예를 들어 자바에서 흔하게 사용되는 @Override 어노테이션이 붙은 메서드는 상위 클래스나 인터페이스로부터 상속 받은 메서드를 오버라이딩하고 있음을 컴파일러에게 미리 알리는 역할을 수행하여 하위클래스에서 오버라이딩 하려 할 때 메서드 명 등을 잘못하여 정의한 경우에도 컴파일러가 알아서 경고메시지를 표시하여 줌으로써 개발자는 에러를 방지할 수 있다. 또한 @Deprecated..

JAVA 2023.05.06

[ Spring Boot ] - HTTP 요청 관련 어노테이션

HTTP 요청 관련 어노테이션 종류 1. @RequestMapping: HTTP 요청(request)을 처리하는 어노테이션이다. @RequestMapping의 경우 기본적으로 GET, POST, PUT, DELETE 등 모든 HTTP 메소드에 대한 요청을 처리하며, 인자에 값을 주어 특정 메서드의 요청만 받아 들이도록 설정할 수 도 있다. 2. @GetMapping: HTTP GET 요청(request)을 처리하는 어노테이션이다. 3. @PostMapping: HTTP POST 요청(request)을 처리하는 어노테이션이다. 4. @PutMapping: HTTP PUT 요청(request)을 처리하는 어노테이션이다. 5. @DeleteMapping: HTTP DELETE 요청(request)을 처리하는..

JAVA/Spring Boot 2023.04.29

spock 사용법(테스트 코드 작성)

Spock를 활용한 테스트 코드 작성 HTML 삽입 미리보기할 수 없는 소스 1. 마우스 오른쪽 build.gradle 파일에서 Generate... - Add dependency... 클릭하면 아래와 같은 창이 나오는데 거기에 org.spockframework.spock를 검색 후 spock-core 찾고 testImplementation으로 변경해준 후 Add를 클릭한 후 2.3-groovy-3.0으로 선택하여 추가해준다 또한 위와 같이 org.cordhaus.groovy를 검색하여 testImplementation 'org.codehaus.groovy:groovy:3.0.0'도 추가. spock는 groovy를 사용하기 때문에 plugin groovy도 추가해준다. 다시 마우스 오른쪽 Genera..

JAVA/Spring Boot 2023.02.23

gradle.properties 파일 설정하기

gradle.properties 파일은 gradle을 사용한 프로젝트 전체에 적용하는 설정에 대한 정보를 담은 파일이다. gradle.properties 파일을 .gradle 경로의 하위에 위치시키면 된다. .gradle 폴더의 위치는 intellij의 Preferences - Build, Execution, Deployment - Build tools - Gradle 을 선택 시 아래와 같이 나오는데 여기서 Gradle user home 의 우측에 있는 것이 .gradle 폴더의 경로이다. 해당 .gradle 폴더의 하위에 vi gradle.properties 명령어를 통해 gradle.properties 파일을 생성해 준 후 해당 파일에 필요한 설정 부분을 작성해 주면 된다. 예를 들어 아래와 같이 ..

JAVA/gradle 2023.02.18

[ Spring boot ] - gradle multi project 생성 방법

* intellij idea를 사용하여 기본 gradle project를 생성하였음을 가정하였다. gardle multi project 생성하기1. gradle 기반의 프로젝트를 생성한다. intellij idea를 활용하여 gradle 기반의 기본 프로젝트를 생성한다.기본적으로 Spring web, Lombok, Spring Data MongoDB를 추가하였다. 이는 각 프로젝트 설정에 따라 달라질 수 있다.2. 위의 과정을 통해 아래와 같은 폴더 구조를 가진 프로젝트가 생성되는데, 나는 한 프로젝트, 즉 한 디렉토리 안에 여러개의 프로젝트를 지니는 multi project 구조로 생성할 것이기 때문에 src 폴더를 지워주었다.3. 하위 모듈 생성하기.최상위 디렉토리에서 마우스 오른쪽 클..

JAVA/gradle 2023.01.10

[ Java ] - 상속 (instanceOf / 멤버변수가 같을 때 )

상속 HTML 삽입 미리보기할 수 없는 소스 상속관계의 클래스에서 해당 클래스가 속한 타입을 구별하는데 도움을 주는 키워드이다. package chapter07; public class InstancdOfEx { public static void main(String args[]) { Person[] people = {new Person(), new Teacher(), new Student()}; for (int i = 0; i HTML 삽입 미리보기할 수 없는 소스 package chapter07; public class BindingTest { public static void main(String args[]) { Parent p = new Child(); Child c = new Child(); ..

JAVA 2023.01.02

[ Java ] - 생성자

생성자 생성자는 클래스가 new 에 의해 인스턴스로 생성될 때 인스턴스의 변수들을 초기화하여주는 생성자 함수를 의미한다. 생성자 함수는 해당 클래스명과 같으며 반환값이 없다는 특징을 가진다. 한 클래스 내부에 인자깂에 따라 오버로딩하여 여러 개의 생성자 함수를 가질 수도 있다. 만약에 해당 클래스 내부에 아무런 생성자 함수가 존재하지 않는 경우에는 컴파일러에 의해 자동으로 아무런 인자를 받지 않는 기본 생성자를 추가하여 준다. * 클래스에 멤버변수가 존재함에도 불구하고 인자를 아무것도 받지 않고 아무런 기능도 하지 않는 기본 생성자 함수가 가능한 이유? 클래스의 멤버변수의 경우 초기화해주지 않아도 각 멤버변수의 타입에 따라 기본값으로 초기화가 이루어지기 때문에 초기화해주지 않아도 문제가 발생하지 않는다...

JAVA 2022.12.30