전체 글

1. 템플릿 엔진 - 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어 - ex ) JSP, Freemarker(서버템플릿 엔진), React, View(클라이언트 템플릿엔진) 자바스크립트에서 JSP나 Freemarker처럼 자바코드를 사용할 수는 없나요? FE의 자바스크립트가 작동하는 영역과 JSP가 작동하는 영역이 다르다. JSP 및 Freemarker은 주로 서버에서 동적 컨텐츠를 생성하고 이를 클라이언트로 보내는데 사용되는 서버 측 기술이고, 자바스크립트는 브라우저에서 실행되는 클라이언트 측 스크립트 언어이다. 서버에서 Java코드로 문자열을 만든 뒤 이 문자열을 HTML로 변환하여 브라우저로 전달하는데, 이 때 자바스크립트 코드는 단순한 문자열이기에 코드로서 동작하지 않는..
보통 Entity에는 해당 데이터의 수정시간과 생성시간을 포함한다. 언제 만들어지고 수정되었는지는 차후 유지보수에 있어서 매우 중요한 정보이다 매번 DB에 삽입 전, 갱신 전에 날짜 데이터를 등록/수정하는 코드가 여기저기 들어가면 귀찮고 코드가 지저분 해짐. 이를 해결하고자 JPA Auditing을 사용 1. JPA Auditing Auditing을 사용하면 Entity를 누가 언제 생성/수정했는지 자동으로 기록하게 할 수 있다. 2. JPA Auditing 적용하기 1) BaseTimeEntity.java @Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public class BaseTimeEntity { @Created..
API를 만들기 위해서는 3개의 클래스가 필요하다. 1) Request 데이터를 받을 Dto 2) API 요청을 받을 Controller 3) 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service 1. Spring 웹 계층 1) Web Layer - 흔히 사용하는 컨트롤러(Controller)와 JSP/Freemarker 등의 뷰 템플릿 영역 - 이외에도 필터(@Filter), 인터셉터, 컨트롤러(@ControllerAdvice) 등 외부 요청과 응답에 대한 전반적인 영역을 의미 2) Service Layer - @Service에 사용되는 서비스 영역 - 일반적으로 Controller와 Dao의 중간 영역에서 사용된다 - @Transactional이 사용되어야 하는 영역 * DAO : Data Ac..
1. build.gradle에 dependencies 안에 JPA 의존성을 설치 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'com.h2database:h2' - spring-boot-starter-data-jpa : 스프링 부트용 Spring Data Jpa 추상화 라이브러리, 스프링부트 버전에 맞춰 자동으로 JPA관련 라이브러리들의 버전을 관리해줌. - h2 : 인메모리 관계형 데이터베이스로 별도의 설치없이 프로젝트 의존성만으로 관리할 수 있고, 메모리에서 실행되기 때문에 어플리케이션을 재시작할 때마다 초기화된다는 점을 이용해 테스트 용도로 많이 사용 2. domain 패키지에 posts 패..
· JAVA
1. private 접근자 객체 지향의 원칙 중 하나는 정보은닉(Information Hiding) 이다. 객체의 구체적인 정보를 외부에 노출하지 말라는 것이다. 이러한 이유로 자바에서는 클래스를 작성할 때 모든 필드를 private으로 숨기고 public 메소드를 통해 간접적으로 필드를 다룬다. 2. 무결성이란? 데이터의 정확성과 일관성을 유지하고 보증하는 것 3. 무결성이 필요한 이유? 외부에서 가격이라는 필드에 직접 접근한다면 0보다 낮은 값을 줄 수 도 있다. 이 경우에는 객체의 무결성이 깨지기 때문에 이를 방지하기 위해서 Getter/Setter를 사용하여 데이터의 무결성을 지켜준다. 4. Getter/Setter를 사용할 때 왜 데이터 무결성이 지켜지는가? Getter, Setter를 이용해서..
1. JPA 1) JPA란?(Java Persistence API) - JPA는 자바에서 사용하는 ORM(Object-Relation Mapping) 기술 표준 - JPA는 자바 애플리케이션과 JDBC 사이에서 동작하며, 자바 인터페이스로 정의되어 있다. - JPA는 단순한 명세, 구현이 없음 ORM : Object-Relation Mapping(객체 관계 맵핑) - 객체와 관계형 데이터베이스의 데이터를 매핑하는 기술 - ORM 프레임워크가 객체와 데이터베이스 중간에서 매핑 - 객체와 테이블을 매핑하여 패러다임 불일치 문제를 해결 - ex) Hibernate, EclipseLink, OpenJPA * 패러다임 불일치 - '객체지향 프로그래밍'은 추상화, 캡슐화, 정보은닉, 상속, 다형성등 시스템의 복잡성..
1. 롬복 소개 1) 롬복이란? - 자바 개발할 때 자주 사용하는 코드 Getter, Setter, 기본 생성자, toString등을 어노테이션으로 자동 생성해주는 라이브러리 2) 롬복의 장단점 (1) 장점 - Lombok은 복잡하고 반복되는 코드를 어노테이션 기반의 코드 자동생성으로 생산성 향상되고 코드가 축소되어 가독성 및 유지보수성을 높일 수 있습니다. (2) 단점 - 코드가 직접 눈에 보이는 것이 아니라 직관성이 떨어질 수 있다. 2. 롬복 설치 IntelliJ 2020.03 버전 이후로는 Lombok 라이브러리가 기본 Plugin으로 설치되어 있기 때문에 dependencies와 설정만 바꿔주면 된다. 1) dependencies 변경 * Gradle 버전이 올라가면서 Lombok 의존성을 추가..
1. TDD vs Unit Test - TDD와 Unit Test는 다르다. 1) TDD (Test Driven Development) '테스트 주도 개발' - 매우 짧은 개발 사이클의 반복에 의존하는 소프트웨어 개발 프로세스 - 항상 실패하는 테스트를 먼저 작성하고 (Red) - 테스트가 통과하는 프로덕션 코드를 작성하고 (Green) - 테스트가 통과하면 프로덕션 코드를 리팩토링 (Refactor) 2) Unit Test '단위테스트' - 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트 - 모듈 : 애플리케이션에서 작동하는 하나의 기능 또는 메소드 2. Unit Test의 장단점 1) 장점 - 개발단계 초기에 문제를 발견하게 도와준다. - 개발자가 나중에 코드를 리팩토링하거나 라이..
빨간망토감자도리
말하는 감자