빌더 패턴 (Builder Pattern) 이란?
·
BackEnd/Spring
빌더 패턴(Builder Pattern) 이란? 빌더 패턴은 객체 생성 패턴 중 하나로, 복잡한 객체를 단계별로 생성할 수 있게 해준다. 이 패턴은 특히 많은 매개 변수를 가진 생성자나 객체 생성 시 다양한 옵션을 제공해야하는 경우에 유용하다. 빌더 패턴을 사용하면 객체 생성의 유연성을 높이고 , 가독성과 유지 보수성을 향상시킬 수 있다. 빌더 패턴의 구성 요소 Builder 클래스 : 객체 생성을 담당하는 내부 클래스 이다. 이 클래스는 객체의 각 필드를 설정할 수 있는 메서드들을 제공하며, 최종적으로 객체를 생성하는 build( ) 메서드를 가진다.Director 클래스 (선택적) : 객체 생성 절차를 정의하는 클래스이다. 빌더 패턴의 구현 시 반드시 필요한 것은 아니며, 주로 복잡한 객체 생성 절차..
[MyBatis] MyBatis 란?
·
BackEnd/JAVA
MyBatis 란 MyBatis는 Java 애플리케이션에서 데이터 베이스와의 상호작용을 쉽게 하기 위한 ORM(Object Relational Mapping) 프레임워크이다.MyBatis는 SQL을 기반으로 한 SQL 매퍼로, SQL 쿼리, 저장 프로시저 등을 XML이나 어노테이션으로 매핑하여 관리할 수 있다.Java는 JDBC api를 제공해주지만, 이런 JDBC를 이용하면 1개 클래스에 반복된 코드가 존재, 한 파일에 java 언어와 sql 언어가 함께 있어서 재사용성이 떨어진다는 단점이 있는데, MyBatis는 이러한 단점들을 개선했으며, 개발자가 작성한 SQL 명령어와 Java 객체를 매핑해주는 기능을 제공하고, 기존에 사용하던 SQL 명령어를 재사용 할 수 있다. MyBatis의 주요 특징 JD..
Entity 와 DTO의 개념과 차이점
·
BackEnd/Spring
Entity Entity 클래스는 실제 DB 테이블과 매핑되는 핵심 클래스로, 데이터 베이스의 테이블에 존재하는 컬럼들을 필드로 가지는 객체이다. DB의 테이블과 1:1로 매핑되며, 테이블이 가지지 않는 컬럼을 필드로 가져서는 안된다.또한, Entity는 데이터 베이스와 연동되기 때문에 수정이 가능하며, Entity의 데이터가 변경되면 그 변경 사항이 데이터 베이스에 반영될 수 있다.Entity는 데이터 베이스 영속성 (persistent)의 목적으로 사용되는 객체이기 때문에 요청(Request) 나 응답(Response) 값을 전달하는 클래스로 사용하는 것은 좋지 않다.또, 많은 서비스 클래스와 비즈니스 로직들이 Entity  클래스를 기준으로 동작하기 때문에 Entity  클래스가 변경되면 여러 클래..
[Thymeleaf] 3. 사용 예시 (기본, 레이아웃)
·
BackEnd/Spring
Thymeleaf practice 1타임리프 결과 출력메세지 : 메세지 출력 장소-->메세지 : [[${msg}]]"|문자열|"지역 변수 처리 : 변수는 span tag 내에서만 유효 관계 연산 : = 4"> 조건 연산(if, unless) : 5?'크구나':'작네'">삼항 연산조건 연산(true) : 3">조건이 참일때 수행조건 연산(false) : 조건이 거짓일때 수행switch 조건문 : 모르는 이름이에요DTO 자료 출력 : getter 사용getCode 호출getSang 호출[[${sangpum.price}]] [[*{['price']}]]반복 처리 : 코드품명가격 [[${s.code}]][[${s.sang}]][[${s.price}]]   Thymeleaf prac..
[Thymeleaf] 2. Thymeleaf 문법
·
BackEnd/Spring
Thymeleaf의 목표 Thymeleaf의 주 목표는 템플릿을 만들 때 유지관리가 쉽도록 하는 것이다. 이를 위해 디자인 프로토타입으로 사용되는 템플릿에 영향을 미치지 않는 방식인 Natural Templates을 기반으로 한다. Natural Templates은  기존 HTML 코드와 구조를 변경하지 않고 덧붙이는 방식이다.  Thymeleaf의 장점코드를 변경하지 않기 때문에 디자인 팀과 개발 팀 간의 협업이 쉽다.JSP와 달리 Servlet Code로 변환되지 않기 때문에 비즈니스 로직과 분리되어 View에 집중할 수 있다.서버 상에서 동작하지 않기 때문에 서버없이 화면을 확인 할 수 잇다. 그래서 더미 데이터를 넣고 화면 디자인 및 테스트에 용이하다. Thymeleaf Namespace Thym..
[Thymeleaf] 1. Thymeleaf 의 특징과 설정 방법
·
BackEnd/Spring
Thymeleaf란 Java 기반의 서버 사이드 템플릿 엔진으로, Spring Boot에서 주로 사용되는 템플릿 엔진이며, HTML, XML, JavaScript, CSS 및 일반 텍스트를 처리할 수 있는 웹 및 독립형 환경에서 사용할 수 있다. Thymeleaf는 HTML 파일을 가져와서 파싱하여 분석 후 정해진 위치에 데이터를 치환해서 웹 페이지를 생성한다. 더보기HTML : compile 없이 클라이언트 쪽 브라우저에서 해석(파싱)해 바로 출력해 준다.JavaScript : 브라우저 위에서 구동하므로 서버 템플릿 엔진의 손을 벗어나 제어할 수 없다. Template Engine 이란? : 프로그램 로직을 표현하는 계층과 서비스를 사용하는 유저가 보는 데이터 출력을 위한 프레젠테이션 계층을 분리하기 ..
Spring Annotaion 알아보기
·
BackEnd/Spring
Annotation 이란?  Spring Framework에서 사용되는 메타데이터를 제공하는 방식으로, 사전적 의미로는 주석이라는 뜻이다.자바에서 Annotation은 코드 사이에 주석처럼 쓰이며 클래스, 메서드, 필드 등에 다양한 기능을 부여할 수 있다.이를 통해 XML 설정 파일을 줄이고 코드의 가독성과 관리성을 높일 수 있다. Annotation의 용도 어노테이션을 사용하면 코드가 깔끔해지고 재사용이 가능하다.컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공한다.소프트웨어 개발 툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보를 제공한다.실행시 (런타임시) 특정 기능을 실행하도록 정보를 제공한다. Annotation 사용 순서 어노테이션 정의클래스에 어노테이션 배치코드가 실행되는 ..
Ant, Maven, Gradle 의 차이
·
BackEnd/Spring
Ant, Maven, Gradle은 모두 Java 프로젝트의 빌드 및 관리 도구로 사용되지만, 각기 다른 특징과 철학을 가지고 있다. 1. AntAnt는 자바 빌드 도구로서 XML 기반의 스크립트 언어를 사용하여 빌드 파일을 작성한다. Ant는 CVS, SVN 체크 아웃에서부터 컴파일, 테스트, 디플로이까지의 빌드 프로세스를 자동화 할 수 있다. Ant는 project, target으로 구성되며 target 안에 task를 구현한다. Ant를 사용하려면 build.xml 파일을 작성하고 실행해야한다. 특징 : 유연하지만, 설정이 복잡할 수 있다. 모든 빌드 작업을 수동으로 정의해야한다.기본적으로는 라이브러리 관리를 지원하지 않으므로, 라이브러리를 직접 다운로드하고 설정해야한다.선언형이 아닌 절차적(Pro..
2-2 데이터 타입과 타입 변환
·
BackEnd/JAVA
(1) 기본 타입 (primitive type , 비객체 타입) 용도크기 적용되는 값의 허용 범위정수형byte1 byte8 bit2의 8승 → 숫자를 256개 저장-128 ~ 127short2 byte16 bit2의 16승-32768 ~ 32767int (default)4 byte32 bit2의 32승-2,147,483,648 ~ 2,147,483,647long8 byte64 bit -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807실수형float4 byte32 bit소수점 이하 7자리 double (default)8 byte64 bit소수점 이하 15자리 문자형char2 byte16 bit(ASCII + 8bit = Uni code) String문자열   ..
2-1. 변수
·
BackEnd/JAVA
(1) 변수- 변수는 값을 저장할 수 있는 메모리의 특정 번지에 붙이는 이름이다.- 프로그램은 변수를 통해 메모리의 특정 번지에 값을 저장하고 읽을 수 있다. 1) 변수 선언과 값 저장변수를 사용하기 위해서는 먼저 변수를 선언해야 하는데 변수에 어떤 타입의 데이터를 저장할 것인지,  그리고 변수 이름이 무엇인지를 결정한다. 변수 선언은 다음과 같이 합니다.데이터타입 변수명;변수명 = 값; // 변수 선언 이후 별도로 변수에 값을 저장하는 방법데이터타입 변수명 = 값; // 변수 선언과 동시에 변수에 값을 저장하는 방법데이터타입 변수명, 변수명, 변수명, ... ; // 같은 타입의 변수는 콤마를 이용하여 한꺼번에 선언할 수 있다예)int age;double value;int age = 20;int x,..