본문 바로가기

백앤드 개발

(47)
[Spring boot] JPA와 스프링 데이터 JPA 1. JPA란 JPA는 객체-관계 매핑 (ORM)을 지원 쿼리를 직접 작성하지 않기 때문에 SQL 중심 설계를 객체 중심 설계로 전환 개발 생산성 크게 상승 2. 환경 설정 //build.gradle dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-data-jpa' //jpa 라이브러리 추가 runtimeOnly 'com.h2database:h2' // 데이터베이스 관련 testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org.junit.vintage', module: 'junit-vintage-eng..
[Spring boot] 프로젝트 환경 설정과 Spring 어플리케이션 구조 1. 프로젝트 생성 및 동작 확인 1) 사전 준비 환경: Java11, IntelliJ 2) 스프링 스타터 사이트에서 프로젝트 생성 https://start.spring.io/ Project: Gradle - Groovy Project Spring Boot: 2.7.17 (23.10.27 기준 Java 11 지원) Language: Java Packaging: Jar Java: 11 groupId: hello artifactId: hello-spring Dependencies: Spring Web, Thymeleaf 3) 메인 클래스 실행 4) 빌드 빌드란 소스코드를 실행가능한 파일로 만드는 과정을 의미 현업에서 배포시 실행 파일만 서버에 넣고 $ java -jar.exe 로 실행 # 1. 디렉토리 이동..
[GIT] remote: Invalid username or password. 1. 문제 로컬에서 원격 저장소 주소 추가 후 push 하는 과정에서 다음과 같은 메시지가 떴다. "remote: Invalid username or password." $ D:\dev\workspace_java>git remote add origin [원격 repository 주소] $ D:\dev\workspace_java>git push origin master remote: Invalid username or password. fatal: Authentication failed for [원격 repository 주소] 2. 해결방법 1) Github 토큰 재생성 Git hub 우측 메인 메뉴 > Settings > 좌측 메뉴 Developer settings> Personal access toke..
[Java] 컬렉션 프레임워크 실습 1. 싱글톤 패턴이란? 객체의 인스턴스가 오직 1개만 생성되는 패턴 고정된 메모리 영역을 사용하기 때문에 일종의 데이터 베이스 역할 수행 public class Singleton { // 정적필드 private static Singleton instance = new Singleton(); // 생성자: private으로 외부에서 생성하지 못하도록 선언 private Singleton() { } // 유일한 인스턴스에 접근할 수 있는 정적 메서드 public static Singleton getInstance() { return instance; } } 2. 실습 목표 1) 국가데이터 / 산업데이터 가져오는 기능을 구현 2) 국가데이터와 산업 데이터가 담긴 DB역할의 Repository 객체 구현 3) ..
[Java] 컬렉션 프레임워크 1. Generics 클래스에서 사용할 데이터 타입을 외부에서 지정하는 기법 제네릭스가 Integer를 사용하면 해당 컬렉션 프레임워크엔 Int 타입만 들어올 수 있음 컬렉션 프레임워크에서 많이 사용됨 지정하는 데이터 타입을 타입 파라미터라 함 타입 파라미터가 할당 받을 수 있는 데이터 타입은 참조형 타입 뿐이다. (Byte, Short, Integer, Long, Plot, Double, Character ... ) package lec13_generics02; public class ExeA { private T t; public ExeA(T t) { this.t = t; } public T getT() { return t; } } package lec13_generics02; public class..
[Java] Java 객체 지향2 1. 상속 상위 클래스의 기능을 extends 키워드로 하위 클래스에서 사용 또는 재정의 상위 클래스에서 공통적인 기능을 정의하고 자식 클래스에서 사용 또는 재정의 이미 마련되어 있는 클래스를 재사용하기 떄문에 효율적 private 필드/메서드는 상속 받을 수 없음 다른 패키지의 default 필드/메서드도 상속 받을 수 없음 ERP의 경우 기능개발자가 부모 클래스 형태로 제공하면 파트별로 개발자가 이를 상속받아 구현 package lec09; // 콜라 부모 클래스 public class Cola { public String colaName = String.valueOf("콜라"); public void showColaProperty() { System.out.println("음료 종류는 탄산"); }..
[Java] Java 객체 지향 1. 객체 지향 언어 sw 개발에서 사용되는 프로그래밍 개념 객체라는 기본적인 단위와 객체 간 상호 작용을 통해 프로그램을 구현하는 것을 의미 객체 지향 언어는 클라스와 인스턴스 중심으로 돌아감 2. 클래스 객체를 만들기 위한 설계도로 객체 생성에 사용 클래스는 객체의 상태를 나타내는 필드(변수)와 객체의 행동을 나타내는 메소드로 구성 3. 접근 제한자 외부에서 데이터 오염을 막기 위해 객체에 대한 접근을 제어할 수 있음 1) public: 모든 접근 허용 2) protected: 같은 패키지 또는 상속 관계의 하위 클래스에서 접근 허용 3) default: 같은 패키지에 있는 객체들만 접근 허용 4) private: 가장 엄격. 동일한 클래스(객체) 내에서만 접근 허용 4. Getter & Setter..
[Java] 메소드와 변수 1. 메인 메소드 자바는 많은 클래스로 구성되어 있으며 하나의 메인 메소드를 통해 실행된다. package lec01; // main 입력 후 ctrl space public class MainMethod01 { public static void main(String[] args) { System.out.println("Hello world"); dosomething(); //Hello world //do something } public static void dosomething() { System.out.println("do something"); } } 2. 변수 하나의 값을 저장하는 메모리 공간 변수는 선언된 블록 내에서만 사용 가능 변수명은 뜻을 포함하도록 생성 낙타등 표기법 (companyNa..