메소드의 구분(클래스 메소드, 인스턴스 메소드)
·
Java/Java Concept
class LoginPage{ boolean success; //인스턴스 변수 void Login(){ success = true; } //인스턴스 메소드 static void classLogin(boolean success){ return success; } //클래스 메소드 } 반환형 앞에 static 키워드가 존재하면 클래스 메소드(static method)라 하며 그렇지 않으면 인스턴스 메소드(instance method)라고 한다. 그렇다면 이 둘의 차이는 무엇일까? 클래스 메소드는 인스턴스(객체)를 생성하지 않고도 바로 접근이 가능하다. System.out.println(LoginPage.classLogin(true)); // 클래스 메소드 LoginPage myLoginPage = new L..
필드의 구분(클래스 변수, 인스턴스 변수, 지역 변수)
·
Java/Java Concept
자바에서 필드는 세 가지로 구분된다. 변수 생성시기 소멸시기 접근방법 클래스 변수 클래스가 메모리에 올라갈때 프로그램 종료시 클래스이름.변수이름 인스턴스 변수 인스턴스 생성시 인스턴스 소멸시 인스턴스이름.변수이름 지역 변수 블록 내에서 변수 선언시 블록을 벗어날시 변수이름 static int 변수이름 int 변수이름 //class 내에 사용하면 인스턴스 변수 + public class 내에 사용하면 지역 변수 클래스 변수는 모든 인스턴스(객체)가 같은 값을 공유하지만, 인스턴스 변수는 그렇지 않고 고유한 값을 지닌다. http://www.tcpschool.com/java/java_member_field 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파..
SpringBoot JPA(Java Persistence API) 사용 목적
·
Java/Spring
유지, 보수와 효율성 증대 JPA를 사용하지 않고, SQL문으로 테이블을 생성한다면 일일히 CRUD를 작성해주어야 한다. 하지만, JPA를 사용한다면 일일히 CRUD문을 작성하지 않고 JPA에게 저장할 객체로 전달해주면 된다. 테이블 간에 연관관계를 정의하기 위해 사용 ex) entity가 2개일 때, 작성자 entity ↔ 게시글 entity간의 연관관계를 정의하기 위해서는 1 : 1(OnetoOne,일대일), 1 : n(OnetoMany,일대다), n: 1(ManytoOne,다대일)이 있다. 작성자 한 명은 여러 개의 게시글을 사용할 수 있으므로, 작성자 입장에서는 1 : n(일대다,OnetoMany) 관계지만, 게시글 입장에서는 다대일(ManytoOne)관계이다(여러 개의 게시글들을 한 명이 쓸 수..
DTO, DAO, Repository, Entity 개념
·
Java/Spring
Entity(Domain) 데이터베이스에 쓰일 컬럼 및 여러 엔티티 간의 연관관계 데이터베이스의 테이블을 하나의 엔티티로 생각해도 됨 DB 테이블과 1:1 매핑 Repository Entity에 의해 생성된 DB에 접근하는 메소드를 사용하기 위한 인터페이스 Service와 DB를 연결하는 고리의 역할 DB에 적용하고자 하는 CRUD를 정의하는 영역 DAO(Data Access Object) DB에 접근하는 객체를 의미 Service가 DB에 연결할 수 있게 해주는 역할 DB를 사용하여 데이터를 조회하거나 조작 DTO(Data Transfer Object) DTO는 VO(value Object)이며, 계층간 데이터 교환을 위한 객체를 의미 (Read Only 개념을 담고 있음) Spring Boot의 서비..
예외처리(Exception)기능 + Response 기능(데이터 반환) 을 추가한 게시판 만들기 코드
·
Java/Spring
Response package com.example.mentoring.Response; import com.fasterxml.jackson.annotation.JsonInclude; import com.sun.net.httpserver.Authenticator; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Getter; @JsonInclude(JsonInclude.Include.NON_NULL)// Null 버림 @AllArgsConstructor(access = AccessLevel.PRIVATE) @Getter public class Response { private boolean success; private ..
스프링 스터디(RestAPI의 다양한 기능 추가(Exception, Response..)
·
Java/Spring
4주차 Custom Respose 만들기 (기존 포스트맨 결과와 비교) 예외처리 사용 및 필요성 Exception 작성 Advice 생성 및 사용 README.md 파일 만들기 Response을 커스텀해서 사용하는 이유는 ResponseEntity 클래스를 통해 리턴을 해주면 데이터의 형식을 수정할 수가 없게 된다. 즉 형식을 유동적으로 수정해주기 위해 Response를 사용한다. ResponseEntity로 데이터를 반환할 경우 Response로 데이터를 반환할 경우 Response로 데이터를 반환했을 때, ResponseEntity로 데이터를 반환했을 때 보다 더욱 다양한 틀에 감싸져 있음을 확인할 수 있다. 이렇게 사용하는게 더욱 편리한 이유는 프론트엔드 개발자의 편의를 위함과 더불어, 데이터의 형..
접근제어자 + 제어자 개념
·
Java/Java Concept
접근 제어자 : 클래스의 접근 범위를 제한하기 위한 제어자이다. public : 접근제한 x protected : 같은 패키지 + 다른 패키지의 자식 클래스에서 접근 o default : 같은 패키지 내에서만 접근 o(자료형 앞에 아무 것도 쓰지 않았을 때) private : 같은 클래스에서만 접근 o 허용 범위 : public > protected > default > private 접근 제어자 같은 클래스 같은 패키지 자식 클래스 그 외 public o o o o protected o o o x default o o x x private o x x x 기타 제어자 final : 변경할 수 없는 상수(constant)를 의미한다. (c,c++ 관점에서 바라볼 때 const와 같은 의미이다) final을..
스프링 스터디(3주차) CRUD 게시판 만들기 + Postman 사용
·
Java/Spring
스프링에서 CRUD 게시판을 만들기 위해 만들어줬던 4가지 1.Entity(개체, DB의 관점에서는 테이블로 바라볼 수 있음) -> 가장 먼저 만듦 기본 어노테이션 @Data @AllArgsConstructor @NoArgsConstructor @Entity =>이것 네 개는 필수적으로 깔고 코드 작성 해야함. 2.BoardRepository=>Repository를 통해 , DB와 스프링 서버를 연동시켜준다. =>코드가 간결하기에 두 번째로 만들어준다. 다른 파일들은 전부 class이지만, BoardRepository는 interface를 통해 상속(extends)받아야 한다. 3. => Controller, Service Controller는 요청을 담당하고, Service는 기능 구현을 담당한다. C..
스프링 스터디(2주차) + 내용 정리
·
Java/Spring
2️⃣주차 배운 내용 스프링에서 데이터베이스를 다루는 방법 DB, Domain, Repository, Service, Controller yml 파일 과 properties 파일의 차이점 컴퓨터끼리의 통신 언어(XML, JSON의 구조) GET, POST, PUT, DELETE 요청 MVC 패턴을 이용한 CRUD 게시판 생성 #1 properties 와 yml 파일 구조 및 장단점 #Application.properties Spring-datasource-url = "" Spring-datasource-username = "" Spirng-datasource-password="" #Application.yml server : 8080 Spring Datasource : url: jdbc:mysql://l..
패키지(package) 개념
·
Java/Java Concept
패키지란? 클래스 + 인터페이스의 집합이다. 하나의 디렉터리를 의미 장점: 1. 파일관리의 효율성이 증대 2. 이름 충돌 문제 해결 패키지는 다른 패키지를 포함할 있다. ex)java.lang.String 패키지의 선언 문법 package 패키지이름; import문의 사용 선언한 패키지에 속한 클래스를 다른 파일에서 사용하기 위함이 목적이다. 문법 import 패키지이름.클래스이름 import 패키지이름.* 자바에서 가장 많이 사용하는 java.lang 패키지에 대해서는 import를 사용하지 않아도 사용할 수 있게 되어있다.