java
28 posts
java) til - 20240512

자바 ORM 표준 JPA 프로그래밍 - 기본편 객제지향 쿼리 언어 2 - 중급 문법 : 경로 표현식 경로 표현식 개념 : 테이블 간의 관계를 통해 복합 객체 내의 속성에 접근할 수 있도록 돕는 것을 말한다. 경로 표현식을 사용하는 이유 복합객체접근 : JPA 엔티티의 관계를 활용하여 복합 객체 내의 속성을 접근할 수 있다. 쿼리 간소화 : 복잡한 쿼리를 더 간단하고 읽기 쉽게 만들어준다. 이로써 개발자는 복잡한 조인 연산 없이도 필요한 데이터를 쉽게 접근이 가능하다. ORM과의 호환성 : 현대 ORM 프레임워크는 경로 표현식을 사용하여 데이터베이스와 객체 지향 프로그래밍 언어 사이의 간격을 연결한다. 점을 찍어 객체 그래프를 탐색하는 것 경로 표현식 용어 정리 상태 필드(state field) : 단순히 값을 저장하기 위한 필드(ex: m.username) 연관 필드(association field) : 연관관계를 위한 필드 단일 값 연관 필드 : , , 대상이 엔티티(ex: te…

May 12, 2024
til
java
java) til - 20240512

자바 ORM 표준 JPA 프로그래밍 - 기본편 객체지향 쿼리 언어 1 - 기본문법 : 소개 JPA는 다양한 쿼리 방법을 지원한다 JPQL JPA Criteria QueryDSL 네이티브 SQL JDBC API 직접 사용, MyBatis, SpringJdbcTemplate 함께 사용 JPQL 이란 가장 단순한 조회 방법 객체 그래프 탐색() JPA를 사용하면 엔티티 객체를 중심으로 개발 문제는 검색 쿼리 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색해야한다. 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능 애플리케이션이 필요한 데이터만 DB에서 불러오려면 검색 조건이 포함된 SQL이 필요 JPA는 SQL을 추상화한 JPQL 이라는 객체 지향 쿼리 언어 제공 SQL 과 문법 유사, SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 자원 JPQL 은 엔티티 객체를 대상으로 쿼리 SQL은 데이터베이스 테이블을 대상으로 쿼리 테이블이 아닌…

May 12, 2024
til
java
java) til - 20240512

자바 ORM 표준 JPA 프로그래밍 - 기본편 값 타입 - 기본값 타입 JPA의 데이터 타입 분류 Entity Type 로 정의하는 객체 데이터가 변해도 식별자로 지속적으로 추적 가능 Value Type int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경 시 추적 불가 값 타입 분류 기본값 타입 자바 기본 타입(int, double) 래퍼 클래스(Integer, Long, …) String 임베디드 타입(embedded type, 복합값 타입) 컬렉션 값 타입(collection value type) 기본값 타입 생명주기를 Entity 에 의존한다. 예시 ) 회원 삭제 -> 내부 나이 필드 함께 삭제 됨 값타입은 공유하면 안됨 예시 ) 회원 이름 변경 시, 다른 회원의 이름도 함께 변경되면 안됨 [참고] 자바의 기본타입은 공유되지 않는다 java의 구조상 primitive type은 stack에 저장되므로, …

May 12, 2024
til
java
java) til - 20240511

자바 ORM 표준 JPA 프로그래밍 - 기본편 프록시와 연관관계 정리 - 프록시 프록시 기초 멤버를 조회할 때 팀도 함께 조회해야 하는가? 쿼리가 나갈 때 한 번에 검색되어 나오는게 좋지 않을까? 반대로 연관관계가 있다고 해서, 사용하지 않고 멤버만 사용한다면? 결국 경우에 따라 비즈니스 로직, 실제 쿼리가 달라질 수 있다. 이러한 상황을 JPA는 프록시와 지연 로딩을 활용하여 해결한다. vs em.find() : 데이터베이스를 통해 실제 엔티티 객체 조회 em.getReference() : 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회 즉, 이후 실제 값을 접근하려고 하면, 그 때 쿼리를 날려 실제 데이터를 가져 온다. 프록시 특징 실제 클래스를 상속 받아서 만들어짐 실제 클래스와 겉 모양 동일 사용 입장에선 객체와 프록시 객체 구분 하지 않고 사용하면 됨(이론상) 프록시 객체는 실제 객체의 참조(target)을 보관 프록시 객체를 호출하면 프록시 객체는 실제 …

May 11, 2024
til
java
java) til - 20240424

자바 ORM 표준 JPA 프로그래밍 - 기본편 고급 매핑 - 상속관계 매핑 상속관계 매핑 관계형 데이터 베이스는 상속 관계X 슈퍼타입, 서브타입 관계라는 모델링 기법이 객체 상속과 유사 상속 관계 매핑 : 객체의 상속과 구조, DB의 슈퍼 타입 서브타입 관계를 매핑하는 것을 말한다. 슈퍼타입 / 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법 각각 테이블로 변환 -> 조인 전략 통합 테이블로 변환 -> 단일 테이블 전략 서브 타입 테이블로 변환 -> 구현 클래스 마다 테이블 전략 조인 전략 결과적으로 하위 객체들은 ID가 PK이자 FK로 갖추게 되고, ITEM을 자동으로 일괄 정리가 된다. : 해당 내용을 넣어주면 좋다. (각 자식을 구분하기 위한 컬럼을 자동 생성한다.) : 자식객체 엔티티에 등록하면 해당 값으로 DTYPE 을 지정해주게 된다. 기본적으로 사용하기 적절한 전략이라고 생각하면 좋다. 장점 테이블 정규화 외래키 참조 무결성 제약 조건 활용 가능 저장공간 효…

April 27, 2024
til
java
intelliJ) Jar 파일 생성하기

introduce IntelliJ IDEA를 이용하여 Java 프로젝트를 Jar파일로 내보내는 방법을 정리한 글이다. 향후 정리할 예정이다. 원본 글 링크 making jar file 참고로 JAR(Java Archive) 파일이란  .jar 확장자 파일에 Class와 같은 Java 리소스와 속성 파일, 라이브러리 및 액세서리 파일이 포함되어 있어 JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일입니다. JAR ( Java Archive ) / WAR ( Web Application Archive ) / EAR (Enterprise Archive) 파일의 특징,차이점에 관련된 내용이나 예제에서 사용하는 IntelliJ 에서 Java Project 생성에 대해 궁금하신 분들은 아래 포스팅을 참고바랍니다.  [Java] JAR WAR 차이점 및 특징 ( + EAR )  [IntelliJ] Java 프로젝트 생성하기 (HelloWorld 출력) 그럼 먼저 Jar파일을…

April 25, 2024
til
java
java) til - 20240424

자바 ORM 표준 JPA 프로그래밍 - 기본편 다양한 연관관계 매핑 - 일대다 일대다 단방향 실무에서 연관관계의 주인이 Team이 되는 경우를 말한다. 대충 상황적으로 Team 입장에서 Member를 기록해야 하나, Member는 Team을 고려하지 않는 경우 나올 수 있는 설계다. 그런데 실질적인 테이블 데이터 간의 연관관계를 생각해보면, Team 은 외래키를 가질 수가 없다. 여기서 이 관계의 핵심문제는 개발자 입장에서 일 쪽에 작업을 한것 뿐이라고 생각했는데, 관계 특성 상 다(N)에 해당하는 쪽에도 영향을 미쳤다는 점이다. 일대다 단방향 정리 일대다 단방향은 일대다에서 일(1)이 연관관계의 주인이 되는 것 테이블 일대다 관계는 항상 다(N) 쪽에 외래키가 있다. 객체와 테이블의 차이 때문에 반대편 테이블의 외래키를 관리하는 특이한 구조 을 꼭 사용해야함. 그렇지 않으면 조인 테이블 방식을 사용해야 한다. (중간 테이블을 하나 추가해야한다.) 일대다 단방향 매핑의 단점 엔…

April 24, 2024
til
java
java) til - 20240423

자바 ORM 표준 JPA 프로그래밍 - 기본편 다양한 연관관계 매핑 - 다대일 연관관계 매핑 시 고려사항 3가지 다중성 단방향, 양방향 연관관계의 주인 다중성 어노테이션은 JPA가 제공하며, DB랑 매핑을 위해 만들어진 것들이다. 다대일 : 일대다 : 일대일 : 다대다 : -> 쓰면 안된다. 단방향, 양방향 테이블 외래키 하나로 양쪽 조인이 가능하다. 사실 방향이란 개념이 없다. 객체 참조용 필드가 있는 쪽으로만 참조 가능 한쪽만 참조하면 단방향 / 아니면 양방향 연관관계의 주인 테이블은 외래키 하나로 두 테이블의 연관관계를 맺음 객체의 양방향 관계는 A->B B->A처럼 참조가 2군데 객체 양방향 관계는 둘 중 테이블의 외래키를 관리할 곳을 지정해줘야 한다. 연관관계의 주인 = 외래키를 관리하는 참조 주인의 반대편 = 외래키에 영향을 주지 않고, 단순 조회만을 진행한다. 다대일 [N : 1] 다대일 관계에서 외래키는 반드시 다 쪽에 있어야 한다. 다대일 단방향 정리 가장…

April 23, 2024
til
java
java) til - 20240421

자바 ORM 표준 JPA 프로그래밍 - 기본편 연관관계 매핑 기초 - 양방향 연관관계와 연관관계의 주인 1 양방향 연관관계 양쪽에서 참조해서 갈 수 있도록 만드는 것. 테이블의 연관관계는 기존의 단방향과 달리 차이가 없다. 여기서 테이블을 기준으로 곰곰히 생각해보면, 어떤 관계량 양쪽에서 어느쪽 외래키를 가지고 있기만 해도 실질적으로 양방향인 것을 의미한다고 볼 수 있다. 이렇게 설정하면 이제 Team, Member 각 객체에서 양방향으로 연결되고 서로 왔다갔다 하면서 데이터를 접근할 수 있게 바뀐다. 물론, 이렇게 양방향인 것보다 객체 중심으로 생각해보면 단방향인게 나을 수 있지만 이는 후술할 예정… 연관관계의 주인과 mapped by mapped by = JPA 의 이해 난이도를 높이는 주범 객체와 테이블 사이에 연관관계를 맺는 차이를 이해해야 한다. 객체와 테이블이 관계를 맺는 것의 차이점 객체 연관관계 = 2개(객체의 참조는 양쪽에서 가능하게 된다.) 회원 -> 팀 연관관계…

April 22, 2024
til
java
java) til - 20240421

자바 ORM 표준 JPA 프로그래밍 - 기본편 연관관계 매핑 기초 - 단방향 연관관계 목표 객체와 테이블 연관관계의 차이를 이해 객체의 참조와 테이블의 외래 키를 매핑 용어 이해 방향(Direction): 단방향, 양방향 다중성(Multiplicity): 다대일, 일대다, 일대일, 다대다의 이해 연관관계의 주인(Owner): 객체 양방향 연관관계는 관리 주인이 필요 예제 시나리오 회원, 팀이 있다. 회원은 하나의 팀에만 소속될 수 있다 회원과 팀은 다대 일 관계이다. 객체를 테이블에 맞추어 모델링 연관관계를 고려하지 않은 객체 설계 이렇게 구조를 짜면 이러한 데이터를 생성할 때 애매함을 우선 보여준다. 뿐만 아니라 값을 찾을 때도 문제가 된다. 객체를 테이블에 맞춘, 데이터 중심의 모델링은 협력관계를 만들 수 없다. 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾는다. 객체는 참조를 사용해서 연관된 객체를 찾는다. 테이블과 객체 사이에는 이런 큰 간격이 있다. 객체 지향 …

April 21, 2024
til
java
java) til - 20240420

자바 ORM 표준 JPA 프로그래밍 - 기본편 준영속 상태 준영속 영속 -> 준영속 영속 상태의 Entity가 영속성 컨텍스트에서 분리(detached) 영속성 컨텍스트가 제공하는 기능을 사용하지 못하는 상태를 의미한다. 준영속 상태로 만드는 방법 : 특정 Entity 만 준 영속상태로 전환한다. : 영속성 컨텍스트를 완전히 초기화 한다. : 영속성 컨텍스트를 종료 시킨다. Entity Mapping : 객체와 테이블 매핑 Entity 매핑 소개 객체와 테이블 매핑 : @Entity, @Table 필드와 컬럼 매핑 : @Column 기본 키 매핑 : @Id 연관관계 매핑 : @ManyToOne, @JoinColumn @Entity JPA가 관리하며 entity 라고 부른다. JPA 를 사용해서 테이블과 매핑할 클래스는 @Entity 가 필수로 붙어야 한다. 주의사항 기본 생성자 필수(파라미터가 없는 public 또는 private 생성자) final 클래스, enum, in…

April 20, 2024
til
java
java) til - 20240419

자바 ORM 표준 JPA 프로그래밍 - 기본편 플러시 플러시 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하는 것. 플러시 발생 데이터 트랜잭션이 일어나고 끝나면 플러시는 발생한다. 이때는 커밋이 일어난게 아니므로 보내기만 한 상태를 의미 한다. 알아두면 좋은 것!, 플러시가 발생한다고 1차 캐시가 지워지는 것이 아니다. 즉 영속성 컨텍스트 자체는 유지되고 데이터베이스에 반영만 우선 시키는 것이고 커밋으로 확정 전 상태를 만들어 두는 것이다. 변경감지 수정된 Enitty 쓰기 지연 SQL 저장소에 등록 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송(등록, 수정, 삭제 쿼리) 영속성 컨텍스트를 플러시 하는 방법 : 직접 호출, 테스트용 혹은 강제 수동 쿼리로 쿼리 날아가는 것을 보고 싶을 때 사용이 가능하다. 트랜잭션 커밋 : 플러시 자동 호출 JPQL 쿼리 실행 : 플러시 자동 호출 JPQL 쿼리 실행 시 플러시가 자동 호출 되는 이유는? Flush 모드 옵션 굳이…

April 19, 2024
til
java
java) til - 20240416

자바 ORM 표준 JPA 프로그래밍 - 기본편 영속성 컨텍스트(1) JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기(Object Relational Mapping) 영속성 컨텍스트 Entity Manager Factory, Entity Manager 영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어 엔티티를 영구 저장하는 환경이라는 의미를 가진다. DB와 관련이 있으면서도 없다. 영속성 컨텍스트는 일종의 논리적 개념으로, manager를 통해서 접근이 가능해진다. J2SE 환경 Entity Manager 와 영속성 컨텍스트는 1:1로 생성이 된다. J2EE, Spring 프레임워크와 같은 컨테이너 환경 Entity Manager 와 영속성 컨텍스트는 N:1 의 관계를 가진다. Entity 의 LifeCycle DB에서 가져오는 객체 Entity 는 나름의 생명 주기를 갖고 있다. 비영속성(new / transient) : 영속성 컨텍스트와 전혀 관계가 없는…

April 18, 2024
til
java
java) til - 20240416

자바 ORM 표준 JPA 프로그래밍 - 기본편 Hello JPA - 애플리케이션 개발 주의 Entity Manager 는 하나만 생성해서 애플리케이션 전체에서 공유한다. Entity Manager 는 thread 간의 공유가 아니라, 사용하고 버리는 구조다 JPA의 모든 데이터 변경은 트랜잭션 안에서 실행된다. 위의 내용 덕분에 데이터의 트랜잭션 사이에서 데이터 객체는 변동 사항이 발생하면 자동으로 알아서 데이터의 변화를 저장하고 반영이 된다. JPQL 소개 JPA 를 사용하면 Entity 객체 중심의 개발이 가능해진다. 기본적인 데이터의 탐색은 Entity Manager를 활용해도 된다. 하지만 JPA 에서 디테일하게 검색을 하기 위한 방식은? 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능 JPQL은 테이블이 아닌 객체를 대상으로 검색하는 객체 지향 쿼리로 기존의 쿼리와는 약간 다르다. SQL 에 의존적이지 않음 이후 뒤에서 자세히 배울 예정 자바 ORM 표준 JPA…

April 16, 2024
til
java
java) til - 20240403

자바 ORM 표준 JPA 프로그래밍 - 기본편 자바에 다양한 것들이 있겠지만 SQL 을 이해하고 JPA 활용도를 높이기 위해 해당 내용을 우선적으로 강의를 듣고 정리해보고자 한다. Hello JPA - 프로젝트 생성 프로젝트 생성, 옛날엔 좀 그랬으나 지금은 intelliJ 를 활용해서 편하게 할 것 h2 가 연습용으론 좋다 빈 프로젝트를 생성하고, hibernate, h2 database driver를 설치한다. 이때 기존의 강좌와는 다르게 작성해야 한다. 더불어 사용 시 spring boot 를 사용하는 만큼 스프링부트 기반으로 버전 관리를 해주면 좋다. 4.0.0 자바 ORM 표준 JPA 프로그래밍 - 기본편 Hello JPA - 프로젝트 생성

April 03, 2024
til
java
java) til - 20240320

TIL of Java Spring 본 내용은 Udemy를 통한 학습 내용이다. 복습 및 완벽 정리가 아닌, 핵심이나 놓치지 말 것들 위주의 정리인 만큼, 내용이 온전히 담기진 않는다. 15강. printf() 사용법, system.in.read() 사용법, Scanner 클래스의 여러 메소드 사용법 printf 사용법 정리 Java의 메소드는 출력 형식을 지정할 때 사용되며, 객체를 통해 콘솔에 텍스트를 출력하는데 유용합니다. 여기서 핵심 포인트를 세 가지로 정리됨 기본 사용법: 는 포맷 지정자를 사용하여 변수의 값을 문자열로 변환하고, 지정된 형식에 맞춰 출력한다. 기본 구조는 이다 포맷 지정자: 포맷 지정자는 기호로 시작하며, 출력할 데이터의 타입과 형식을 지정한다. 예를 들어, 는 정수를, 는 문자열을 나타낸다. 정밀도, 폭, 사용할 공간, 숫자 형태 등을 세밀하게 조정할 수 있다 예시: 정수 출력: → 101 소수점 아래 두 자리까지 출력: → 123.46 문자열…

March 25, 2024
til
java
java) til - 20240320

TIL of Java Spring 본 내용은 Udemy를 통한 학습 내용이다. 복습 및 완벽 정리가 아닌, 핵심이나 놓치지 말 것들 위주의 정리인 만큼, 내용이 온전히 담기진 않는다. 12강. 실수 연산에서의 자동 타입 변환, + 연산에서의 문자열 자동 타입 변환, 문자열을 기본 타입으로 강제 타입 변환 1. 실수 연산에서의 자동 타입 변환 실수 타입의 기본형은 double 이다. 따라서 산술 연산식에서 실수 연산이 이루어지면 double 타입으로 자동 타입 변환되어 사용된다. (설령 int 타입 등과 혼합으로 계산이 되어도) 만약 정수 타입으로 연산이 반드시 필요하면, double 타입을 강제로 int로 변환해야 한다. 자바에서 소문자 또는 대문자 F가 없는 실수 리터럴을 double 타입으로 해석한다. 따라서 실수 리터럴 등을 연산한 뒤에 float 타입에 저장하면 컴파일 에러가 발생한다. 위 사진을 보면 중요한 부분을 시사 한다. 방법 1 의 경우 0을 얻는다. 왜냐면 서순…

March 20, 2024
til
java
kotlin 컴파일 과정을 알아보자

kotlin이란? 자바 언어를 기반으로, JVM 위에서 동작하는 새로운 프로그래밍 언어이다. intelliJ IDE 로 유명한 JetBrains에서 개발되었다. 웹 프론트, 서버 백 앤드, 안드로이드 네이티브 프로그램을 작성 가능하며, 아직 불완전하지만 Kotlin native 를 통해 JVM없이 실행 가능한 단일 실행 프로그램도 만들 수 있는 언어이다. 2010년 첫 버전이 등장한 이후로 지속적인 개선과 지원으로 많은 개발자들에게 관심을 받게 된다. 특히나 안드로이드 개발 면에서 자바 6에 대한 갈증을 해소하는 영역에서 많이 쓰인다. 2017년에는 구글 I/O에서 정식으로 코틀린을 안드로이드 개발 언어로 채택하게 되면서 더더욱 성장하는 중인 언어이다. kotlin은 무슨 특징을 갖고 있을까? Null 안전성 : kotlin 의 유형 시스템은 null 참조가 역참조 되는 것을 방지한다. 확장 기능 : kotlin을 사용하면 클래스에서 상속하지 않고도 새로운 기능으로 클래스를 확장…

March 20, 2024
study
java
java 컴파일 과정을 알아보자

자바의 역사 1990년대, Sun Microsystems 에서 개발되었다. 당시 엔지니어 부서 중 하나인 ‘Green Team’은 이제 곧 소비자 개개인의 물건에 컴퓨터가 있는 시대를 예감하여, 이를 위한 새로운 언어 개발을 착수한다. 이때 Green Team 의 깃에서 greentalk 라고 부르다가, 이름을 라고 짓게된다. 모바일 기기라는 개념조차 부족하던 시대 가전제품에 칩을 탑재할 용도로 언어가 만들어졌으나, 이 아이디어 자체가 시대를 너무 앞섰다. 당시 하드웨어가 구동 될만한 성능이 되지 못해 성공하지 못하였으나, 웹 애플리케이션에 적합한 언어로 되었고 1955년 Java 1.0 으로 세상에 나오게 된다. 상당히 오랜시간 썬에서 업데이트 해왔으나 2010년 오라클에 인수되었다. 일부 오라클의 유료화 선언 등으로 논란이 있었으나, 결론적으로 자바는 무료로 사용할 수 있다. 인터프리터와 컴파일러 컴퓨터는 기계어, 즉 0, 1로 구성된 binary 데이터를 읽어낸다. 그러나 …

March 18, 2024
study
java
java) til - 20240315

TIL of Java Spring 본 내용은 Udemy를 통한 학습 내용이다. 복습 및 완벽 정리가 아닌, 핵심이나 놓치지 말 것들 위주의 정리인 만큼, 내용이 온전히 담기진 않는다. 09강. 실수 타입, 논리 타입, 변수의 참조 타입, String 클래스, Object클래스, toString(), 이스케이문자 왜 뒤에 f 등을 붙여서 실수를 표현하는가? 컴파일러에게 float 타입임을 알리기 위함 정밀도 면에서 float보단 당연히 double 이 정밀도가 높다 C언어에서는 논리타입은 존재하지 않는다(0, 1이를 대신함) 자바 타입은 참과 거짓을 의미하는 true, false를 논리 리터럴로 사용한다. (1byte) 자바의 참조타입(String, Object… etc) String 은 클래스 타입이며, 기본타입이 아닌 참조 타입임. 자바의 클래스의 최고 종상 클래스는 Object 클래스를 상속 받는다 기본적으로 참조 타입의 구조는 stack 에 heap에 생성되는 데이터의 주소값…

March 15, 2024
til
java
자바 ) til - 20240304

TIL of Java Spring 본 내용은 Udemy를 통한 학습 내용이다. 복습 및 완벽 정리가 아닌, 핵심이나 놓치지 말 것들 위주의 정리인 만큼, 내용이 온전히 담기진 않는다. 08강 변수의 기본 타입 - 실수, 논리, 변수의 참조 타입, 이스케이프 문자 기억할 것들 실수 타입 자바는 기본적으로 실수 리터럴을 double로 해석하고 double타입 변수에 저장해야 한다. 위에 말은 반대로 말하면 실수를 float 에 저장시 컴파일 에러를 발생시킨다. 따라서 이를 해소하려면 숫자 뒤에 f, F 를 붙여야 한다. 이때 float , double 각 타입은 허용되는 최대 소숫점 이하 자리가 각 17, 15자리이다. 또한 정밀도는 double이 float 대비 2배 정도 좋은 편이다. 기본타입인 경우 자바여도 동일하게 C와 유사하게 동작하며, 기본타입이 아닌 것들이 전부 참조 타입으로 동작한다. 생각해볼 것들 TIL of Java Spring 08강 변수의 기본 타입 - 실수, 논…

March 04, 2024
til
java
자바) til - 202401020949

TIL of Java Spring 본 내용은 Udemy를 통한 학습 내용이다. 복습 및 완벽 정리가 아닌, 핵심이나 놓치지 말 것들 위주의 정리인 만큼, 내용이 온전히 담기진 않는다. 05 강 변수 선언, 초기화, 사용, 값을 바꾸는 방법, 주석의 의미, main()의 개념, … 기억할 것들 클래스 명은 가능하면 대문자로 시작해라 main()은 프로그램의 시작점 변수의 사용에 있어 반드시 초기화가 원칙 -> 실제 사용시 @Builder 를 통해 필요 없을 수 있는데, 더 자세히 이부분에 대해 이해해야 할 것 같다. 생각들 딱히 아직은 기초 내용을 복습하는거라 크게 문제는 없기도 하고 궁금한 사항들은 적은 것 같다. 계속 빠르게 복습하고 훑어야지… TIL of Java Spring 05 강 변수 선언, 초기화, 사용, 값을 바꾸는 방법, 주석의 의미, main()의 개념, … 기억할 것들 생각들

January 02, 2024
til
java
TIL_of_Spring_230507

TIL of Java Spring 본 내용은 JAVA 기초 학습 이후 백앤드 스프링 기초를 배우기 위해 김영한 교수님의 “스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술” 의 내용 중 기억할 내용들을 메모하는 포스팅이다. 백앤드.. 배우려면 열심히 해야지. 취업까지 한 고지다. 회원 관리 예제 - 백엔드 개발 회원 레포지터리 테스트 케이스 작성 main 메서드에서 실행하거나 웹 어플리케이션의 컨트롤러를 통해 기능 실행 여부를 판단이 가능하나 이는 시간도 걸리고 반복실행이 어렵다. 이에 자바는 이라는 프레임 워크로 테스트를 실행해서 이런 문제를 해결한다. 해당 방식이로 할 때 주의점은 전체 테스트를 돌릴 때, 과거의 테스트에 사용한 변수나, 데이터를 그대로 접근하게 되는 경우가 발생한다. 따라서 테스트가 하나 끝날 때 데이터를 초기화해주는 작업을 각 테스트별로 넣는게 용이하다. 해당 내용이 를 설정하는 것이다. 이렇게 테스트 케이스들을 전부 넣어서 tes…

May 07, 2023
til
java
TIL_of_Spring_230425

TIL of Java Spring 본 내용은 JAVA 기초 학습 이후 백앤드 스프링 기초를 배우기 위해 김영한 교수님의 “스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술” 의 내용 중 기억할 내용들을 메모하는 포스팅이다. 백앤드.. 배우려면 열심히 해야지. 취업까지 한 고지다. 회원 관리 예제 - 백엔드 개발 비즈니스 요구사항 정리 데이터 : 회원 ID, 이름 기능 : 회원 등록, 회원 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 간단하게 하는 이유는 스프링 생태계 파악용이니까.. 너무 복잡하게 생각하진 말자. 컨트롤러 : 웹 MVC 컨트롤러 역할, 웹 환경에서의 다양한 요청의 1차적 집합소(?) 서비스 : 핵심 비즈니스 로직을 구현, 룰, 제한사항, 서비스의 설계에서 가이드 역할을 해주는 공간 레포지터리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리하는 역할 도메인 : 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주…

April 24, 2023
til
java
TIL_of_Spring_230424

TIL of Java Spring 본 내용은 JAVA 기초 학습 이후 백앤드 스프링 기초를 배우기 위해 김영한 교수님의 “스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술” 의 내용 중 기억할 내용들을 메모하는 포스팅이다. 백앤드.. 배우려면 열심히 해야지. 취업까지 한 고지다. MVC와 템플릿 엔진 MVC : Model, View, Controller 요즘은 MVC 스타일로 많이 사용한다. view 란 화면 자체를 그리는 것에만 집중해야 한다. 이에 비해 controller는 비즈니스 로직과 관련이 있거나 내부적 처리에 집중하느 것을 의미한다. 이것을 Model, view, controller 로 분리해서 집중한다는 말은, 한 마디로 내부 구조를 명확하게 구분지어 화면을 뿌리는 요소와 내부 로직을 명확하게 구분지어주는 것을 의미한다. 위의 예시로 작성을 하게 되면 localhost:8080/hello-mvc 로 GET 할 경우, 값을 받아야 함을 지정해줄 …

April 24, 2023
til
java
TIL_of_Spring_230419

TIL of Java Spring 본 내용은 JAVA 기초 학습 이후 백앤드 스프링 기초를 배우기 위해 김영한 교수님의 “스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술” 의 내용 중 기억할 내용들을 메모하는 포스팅이다. 백앤드.. 배우려면 열심히 해야지. 취업까지 한 고지다. 빌드하고 실행하기 실제 동작하는 프로그램으로 만드는 것은 매우 간단하다. Mac OS 기준 명령어를 통해 알아서 돌아가게 된다. 빌드를 마친 후에는 경로를 따라 들어가면, 빌드가 된 완성 jar 파일이 눈에 들어올 것이다. 그 뒤 실행은 으로 정상 실행되는 것을 확인하면 빌드가 마무리 된 것이다. 이렇게 완성된 빌드 파일을 서버에 올리고 실행을 시키면 기본적인 서버가 구성이 되어 서버로 동작하게 될 것이며, 여기에 각종 파이프나 포트를 통해 마이크로서버의 구축이나, 도커를 활용한 컨테이너 기법을 통해 시스템의 구조를 여러모로 수정할 수도, 제작할 수도 있는 것이다. 추가로 …

April 19, 2023
til
java
TIL_of_Spring_230417

TIL of Java Spring 본 내용은 JAVA 기초 학습 이후 백앤드 스프링 기초를 배우기 위해 김영한 교수님의 “스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술” 의 내용 중 기억할 내용들을 메모하는 포스팅이다. 백앤드.. 배우려면 열심히 해야지. 취업까지 한 고지다. 라이브러리 살펴보기 이전에 프로젝트를 생성하면서 라이브러리를 많이 받아오진 않았다. 하지만 막상 실제 다운로드 받아진 라이브러리는 정말 많은 것을 알 수있다. 요즘의 웹 어플리케이션 빌드에서 보통 몇 십메가 정도의 라이브러리들은 자동으로 다운로드가 되고 사용된다. Gradle이나 Maven 같은 빌드 툴들은 를 관리해주는 기능을 갖고 있다. 우리가 사용하려는 라이브러리를 선택하면, 해당 라이브러리가 동작하기 위한 의존 관계의 것들을 모두 자동으로 다운받고, 관리해주는 것이다. 인텔리제이의 우측에 보면 Gradle 항목이 있고, 이를 누르면 실제 의존관계를 확인할 수 있다. 또한…

April 17, 2023
til
java
TIL_of_Spring_230413

TIL of Java Spring 본 내용은 JAVA 기초 학습 이후 백앤드 스프링 기초를 배우기 위해 김영한 교수님의 “스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술” 의 내용 중 기억할 내용들을 메모하는 포스팅이다. 백앤드.. 배우려면 열심히 해야지. 취업까지 한 고지다. 강의 소개 목표 => 간단한 웹 어플리케이션 개발 스프링 부트 프로젝트 생성 스프링 부트로 웹 서버 실행 회원 도메인 개발 웹 MVC 개발 DB 연동 - JDBC, JPA, 스프링 데이터 JPA 테스트 케이스 작성 ~ 큰그림과 핵심 기술들을 돌려보면서, 어디서 무엇이 어떻게 왜 쓰이는지를 파악하자 가 목표! 내가 이 강의에서 지켜 나가고, 배워가야할 것 첫 감 잡기에 만족하자 스프링 기술에 매몰되지 말자 실무에서 안 쓰는 건 과감히 제거하자. 김영한 교수님의 강의 시리즈를 다 볼 수 있을지는 애매하다(무엇보다 돈이;;). 일단 기본만 하고 실 프로젝트에 들어가봐야 알것 같긴한데… 흠…

April 13, 2023
til
java