Java 14

Spring Boot H2 Database 사용하기

실행 환경은 Windows, IntelliJ, Java 17, Spring Boot 3 버전, gradle 프로젝트를 사용했다. plugins { id 'java' id 'org.springframework.boot' version '3.2.1' id 'io.spring.dependency-management' version '1.1.4' } ... java { sourceCompatibility = '17' } resources 하위에 application.yml 파일을 만든 후 아래의 코드를 작성한다. spring: h2: console: enabled: true server: port: 8070 프로젝트 실행 후 Console 창에서 JDBC URL 을 찾아서 ctrl+C로 복사해둔다. 콘솔창에서 ..

Java 2023.12.27

자바 입문 전 알아두면 좋은 것 2

함수 vs. 메서드 함수는 어디에 속해있지 않고 단독 모듈이기 때문에 함수를 그냥 호출하여 사용이 가능하다. 메서드는 함수의 일종이긴 하지만 클래스 안에 속해 있고 클래스의 멤버 변수들을 이용해서 구현된 것을 메서드라고 한다. 변수는 데이터, 함수 또는 메서드는 기능, 클래스는 변수와 기능을 보유한 구조로 생각할 수 있다. 객체를 생성하여 class 기반으로 실제 하드웨어 메모리에 생성하고 데이터를 활용할 수 있다. 객체 생성 시 반드시 생성자라는 요소가 필요한데, 개발자가 코딩하지 않아도 class 내부에 자동으로 생성된다. 개발자들이 개발하는 모든 class는 자바 데이터 타입으로 사용 가능하다. 타입은 객체 타입 또는 참조 타입이다. 생성된 객체를 관리하는 변수는 참조(reference) 변수라고 ..

Java 2023.12.14

객체지향 문제 만들고 풀어보기

Java version : 11 lombok 1.18.30 짝과 함께 풀 수 있는 문제를 내보고 풀어봤다. 짝꿍을 위한 예제 상암동 필라테스 가격 비교 프로그램을 만들어 주세요. Pilates : name(업체명), program(업체에서 운영하는 프로그램명), price(프로그램의 가격 - 한 달 기준) 밑의 리스트 중 가장 저렴한 프로그램을 운영하는 업체명과 프로그램명을 출력해주세요. Pilates package fisa.model.domain; import lombok.Getter; import lombok.Setter; import lombok.NoArgsConstructor; import lombok.AllArgsConstructor; @Getter @Setter @NoArgsConstructo..

Java 2023.11.22

Eclipse 개발 환경 세팅

목차 1. 개발 환경 세팅 시 폴더 구조 2. JDK 설치 3. 시스템 변수 추가 4. cmd에서 java가 잘 설치됐는지 확인 개발 환경 세팅 시 폴더 구조 C:/cloud/devEnv/dk-11 JAVA_HOME 새로 추가 소프트웨어가 실행될 때 jdk가 필요할 때가 있다. jdk의 위치를 파악해주는 표준 이름. C:/cloud/00.sw/ 00.util/ 01.jdk/ # 11버전, openjdk v.11 02.rdbms/mysql 03.IDE/ 회사에서는 인텔리제이가 1인 당 60~70만원 선이므로 아직까지 이클립스를 쓰는 곳이 많다. eclipse download 검색 후 eclipse packages 링크로 들어가서 이전 버전을 탐색해본다. Eclipse IDE for Enterprise Ja..

Java 2023.11.21

Java 입문 전 알아두면 좋은 것

관련 용어 IDE(Integrated Development Environment) 통합 개발 환경 e.g. 이클립스 - eclipse.org 인텔리제이 - jetbrains.com JDK Java Development Kit의 약어이다. 작성한 코드를 컴파일하고 실행해주는 역할을 수행한다. Compiler를 비롯한 개발에 필요한 여러 도구 + JRE(실행 도구) 컴파일러 : Java source를 byte code로 변환(단, 문법적 오류가 없는 경우) 인터프리터 : byte code인 class확장자 파일로 실행 JRE(Java Runtime Environment) JVM + API(Application Programming Interface, library) JDK JRE JVM API API 문서 ..

Java 2023.11.14

[Spring Boot] Lombok

Intro Spring Boot를 사용하면서 Lombok을 너무나 당연하게 써왔다. JPA의 필수 도구인 Lombok에 대한 강의를 들으면서 Annotation의 의미, 활용법과 어떤 원리로 쓰이는지 잘 이해할 수 있었다. Lombok JPA의 필수 도구. 여러 개의 field 변수를 가지고 캡슐화 원칙에 의해 Getter, Setter를 많이 만들어야 하는 JPA의 특성상, 꼭 필요한 라이브러리이다. c.f. JPA와는 별개의 라이브러리이다. JPA에서의 Entity 기본 구조 field 변수와 Getter, Setter의 조합으로 만들어진다. Lombok Annotation이 원래는 어떤 형태일까? domain package를 만들고 하위에 User 클래스를 만들었다. Lombok, Delombok은..

Java 2023.10.24

[Spring Boot] ORM, JPA, Hibernate 개념

ORM Object Relational Mapping : 객체와 데이터베이스 사이의 관계를 연결해주는 것. - 우리가 정의한 객체를 데이터에 연결해서 사용할 수 있다. - 만약, ORM 없이 직접 data를 핸들링한다면, select query 후 일일히 어떤 정보인지 mapping해서 사용해야 할 것이다. JPA Java Persistence API : 현재 Java 진영의 ORM 표준으로 채택됨. Persistence 영역 즉, data에 접근하기 위한 API의 규격을 정의해놓은 것이다. ORM vs. JPA ORM : 전체적인 개념 JPA : 구체적으로 그 기능을 정의해놓은 스펙 Hibernate JPA에 대한 실제 구현체. 즉, implementation이다. c.f. 또 다른 구현체로는 Ecli..

Java 2023.10.23

[Spring Boot] springfox 3.0.0 Whitelabel 에러

프로젝트의 버전 정보 plugins { id 'java' id 'org.springframework.boot' version '3.1.4' id 'io.spring.dependency-management' version '1.1.3' } group = 'com.example' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } 현재 프로젝트에서 spring boot 3.1.4 버전, Java 17 버전을 사용 중이다. 맞지 않았던 버전(springfox-boot-starter >> 3.0.0) // https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter implementat..

Java 2023.10.20

[Spring Boot] Swagger 사용하기

1. Google에서 Maven Repository를 검색한다. https://mvnrepository.com/ 2. 이 사이트에서 springfox를 검색한다. 3. 3.0.0 버튼을 클릭한다. 4. Gradle에서 해당 내용을 복사한다. // https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0' 5. build.gradle에 붙여넣는다. 6. 코끼리를 눌러 새로고침해준다. 7. main을 실행해본다. http://localhost:8080/swagger-ui/ 8. 크롬에서 ..

Java 2023.10.18

[Spring Boot] 테스트 시 null 값이 들어올 때 간단하게 확인하기

Test 실행 시 값이 안 들어와서 확인해봐야 할 때, Postman으로 번거롭게 확인하는 대신 콘솔에서 찍어볼 수 있다. 1. Component에서 var responseType = new ParameterizedTypeReference(){}; // var responseType = new ParameterizedTypeReference(){}; response의 type을 SearchLocalRes에서 String으로 변경해준다. 2. return 부분을 null로 잠시 바꿔준다. return null; // return responseEntity.getBody(); 해당 라인에 break point를 걸어준다. 3. Test로 가서 debug를 한다. 나의 경우에는, category는 들어왔는데 ..

Java 2023.10.17