Time does not change us. It just unfolds us.

분류 전체보기 131

[SpringBoot]Logging과 Log Level

로깅(Logging)이란 시스템 동작시 시스템의 상태와 작동 정보를 시간의 경과에 따라 기록하는 것, 그리고 그 기록을 로그(Log)라고 한다. 상황별 Level 지정하여 Level별 메시지를 선택 가능 응용 프로그램의 실행에 대한 흐름과 에러 확인 가능 프레임워크를 이용하여 간단하고 쉬운 사용 환경 조성 기능 모듈 별로 유연하게 메세지 출력 가능 자유로운 출력 위치 및 다양한 출력 형식 지원 로깅 관련 프레임 워크 : logback, log4j, logback, log4j2 , slf4j이 있다. log4j2 동일한 쓰레드 기준으로 Log4j2 처리량이 Log4j1 혹은 Logback 보다 월등한 차이를 가지고 성능을 나타냄 log4j2는 slf4j의 구현체 dependency 추가 org.bgee.l..

Web/Spring Boot 2021.11.25

[JPA]객체지향 쿼리

QueryDSL은 써볼 기회는 없었지만 JPQL을 직접사용하거나 JPA Criteria로 처리하는 것보다 실무에서 훨씬 유지보수에 유리하다고 들어 용어만 이해하고 넘어가려 한다. 같은 강사님의 강의를 들은 분이 정리한 QueryDSL 사용법과 실무 경험 공유 내용을 시간될 때 참고해야겠다. https://ict-nroo.tistory.com/117 [JPA] Spring Data JPA와 QueryDSL 이해, 실무 경험 공유 Spring Data JPA와 QueryDSL JPA 기반 프로젝트 Spring Data JPA QueryDSL Spring Data JPA 지루하게 반복되는 CRUD 문제를 세련된 방법으로 해결 개발자는 인터페이스만 작성한다 스프링 데이터 JPA가 구현 객체.. ict-nroo...

Web/JPA 2021.11.25

2021-11-25 Thu

컨디션이 너~무 안좋다 Today Xojm Learned Logging level 설정 이해 (https://goddaehee.tistory.com/206) QueryDSL 이해 JPA 책 요약본 훑기 (https://ultrakain.gitbooks.io/jpa/content/) 영속성 콘텍스트 flush vs commit gitbook 이해 Inflearn 강의듣고 홈 웹화면 구현 / 회원등록 화면 구현 객체지향 쿼리 복습 정리 : https://x-ojm.tistory.com/65 [JPA]Hibernate과 QueryDSL QueryDSL은 써볼 기회는 없었지만 JPQL을 직접사용하거나 JPA Criteria로 처리하는 것보다 실무에서 훨씬 유지보수에 유리하다고 들어 용어만 이해하고 넘어가려 한다..

Study Plan/TXL 2021.11.25

[Spring]@Autowired

@Autowired @Autowired를 이용하면 필요한 의존 객체의 “타입"에 해당하는 Bean을 찾아 주입한다. (의존성 : 하나의 객체 내에서 필요에 의해 다른 객체를 사용해야 할 경우 사용하는 것 의미) DI(Dependency Injection = 의존성 주입)은 Spring의 특성으로 하나의 객체 내에서 필요에 의해 다른 객체를 생성자 또는 Setter를 통해 주입시키는 것을 의미한다. @Autowired annotation을 통해 "인터페이스를 선언한 변수에 자동적으로 그 인터페이스를 재정의한 객체를 주입시킨다." 생성자 setter 필드 위의 3가지의 경우에 Autowired를 사용할 수 있다. 그리고 Autowired는 기본값이 true이기 때문에 의존성 주입을 할 대상을 찾지 못한다면 ..

Web/Spring Boot 2021.11.24

2021-11-24 Wed

Today Xojm Learned JPA 인프런 '실전! 스프링 부트와 JPA 활용1 강의 이수 상품 도메인 개발 (Entity, Repository, Service) 주문 도메인 개발 주문 Entity 개발 주문 Repository 개발 주문 Service 개발 주문 Test -> JUnit5 예외처리 이해 주문 검색 기능 도메인 모델 패턴 공부(비즈니스 로직 대부분을 엔티티에 구현) Transaction, EntityManager 이해 Service 구현 관련 내용 정리 @Transactional과 옵션 이해 spring injection 관련 @Autowired 공부해서 정리한 내용 https://x-ojm.tistory.com/61 [JPA]Transcation, 영속성Context, Entity..

Study Plan/TXL 2021.11.24

[JPA]Transcation, 영속성Context, EntityManager

강의를 듣고 Repository에 대한 단위 테스트를 진행하면서 "EntityManager.persist(member) 하여도 insert문 안나가고 DB transaction commit 할 때 query가 나갑니다." 라는 설명을 듣고 개념들을 하나씩 찾아보기로 했다. @Transaction 데이터베이스에서 논리적 상태 변화, 즉 Insert, Update, Delete로 데이터베이스의 데이터가 변화가 있는 것을 트랜잭션(transaction)이라고 한다. Transcation은 Transaction은 2개 이상의 쿼리를 하나의 커넥션으로 묶어 DB에 전송(commit)하고, 이 과정에서 에러가 발생할 경우 자동으로 모든 과정을 원래대로 되돌려 놓는다.(rollback) 이러한 과정을 구현하기 위해 ..

Web/JPA 2021.11.23

2021-11-24 Tue

Today Xojm Learned JPA 인프런 '실전! 스프링 부트와 JPA 활용1 강의 이수 회원 Service 개발 회원 기능 Test 상품 도메인 개발 (Entity, Repository, Service) Repository 구현 관련 (EntityManager.persist(member) 하여도 insert문 안나감 DB transaction commit 할 때 query가 나감) Transaction 이해 영속성(persist) context 이해 EntityManager 이해 @Autowired가 아닌 표준 annotaion @PersistenceContext 로 injection Service 구현 관련 @Transactional과 옵션 이해 spring injection 관련 @Autow..

Study Plan/TXL 2021.11.23

[JPA]JPQL(Java Persistence Query Language)

JPA를 공부하면서 JPA는 SQL을 추상화한 JPQL이라는 객체지향 쿼리 언어를 제공한다는 것을 알게 되었다. JPA은 table 대상인 SQL과 달리 Entity 객체를 중심으로 개발하므로 Entity 대상으로 Query를 작성​한다고 한다. JPQL과 SQL 차이점 JPQL은 엔티티 객체를 대상으로 쿼리한다. SQL은 데이터베이스 테이블을 대상으로 쿼리한다. 그 외 특징들 엔티티 객체를 조회하는 객체지향 쿼리 SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않음 JPA는 JPQL을 분석한 후 적절한 SQL을 만들어 데이터베이스를 조회 방언(Dialect)만 변경하면 JPQL을 수정하지 않고 자연스럽게 DB 변경 가능 JPQL 문법의 전체 구조는 SQL과 유사 아래와 같이 Entity 이름과 ..

Web/JPA 2021.11.22

2021-11-22 Mon

Today Xojm Learned JPA 인프런 '실전! 스프링 부트와 JPA 활용1 회원 Service 개발 회원 기능 Test 영속성 context 이해 (https://gmlwjd9405.github.io/2019/08/06/persistence-context.html) JPQL 이해 / SQL과 차이점 EntityManager 이해 jpashop readme.md 파일 작성 (좋은 Readme 작성하기 : https://velog.io/@always0ne/%EC%A2%8B%EC%9D%80-Readme-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0 참고) banner.txt 넣기 https://x-ojm.tistory.com/57 [SpringBoot]banner.txt만들기 1..

Study Plan/TXL 2021.11.22

[JPA]Annotation 정리

아래와 같은 table을 작성하기 위해 entity 개발을 하면 사용된 annotation을 정리하고자 한다. @Entity 데이터베이스 테이블과 일대일로 매칭되는 객체 단위로, Entity 객체의 인스턴스 하나가 테이블에서 하나의 레코드 값을 의미한다. 객체의 인스턴스를 구분하기 위한 유일한 키값을 가지는데 테이블 상의 Primary Key와 같은 의미이다. @Id Entity 클래스 상에 해당 PK를 명시적으로 지정한다. @Column 데이터베이스의 테이블에 잇는 컬럼과 동일하게 1:1로 매칭되기 때문에 Entity 클래스 안에 내부변수로 정의된다. 별다른 옵션을 설정하지 않는다면 생략이 가능하다. 즉 Entity 클래스에 정의된 모든 내부변수는 기본적으로 @Column 어노테이션을 포함한다고 본다...

Web/JPA 2021.11.18

2021-11-18 Thu

Today Xojm Learned JPA 인프런 '실전! 스프링 부트와 JPA 활용1 도메인 모델과 테이블 설계 엔티티 클래스 개발1 엔티티 클래스 개발2 엔티티 설계시 주의점 JpaShop 프로젝트 어플리케이션 구현 준비 회원 repository 개발 프로젝트에 쓰인 jpa annotation 정리 연관관계 mapping 이해 테이블 상속관계 이해 https://x-ojm.tistory.com/54 [JPA]Annotation 정리 아래와 같은 table을 작성하기 위해 entity 개발을 하면 사용된 annotation을 정리하고자 한다. @Entity 데이터베이스 테이블과 일대일로 매칭되는 객체 단위로, Entity 객체의 인스턴스 하나가 테이블에 x-ojm.tistory.com https://x-..

Study Plan/TXL 2021.11.18

2021-11-17 Wed

Today Xojm Learned github TIL repository 만들기 -> git보다는 블로그에 정리하는게 나을 것 같다. JPA 인프런 '실전! 스프링 부트와 JPA 활용1 도메인 모델과 테이블 설계 엔티티 클래스 개발1 中 엔티티 클래스 개발2 엔티티 설계시 주의점 Database 용어 정리 프로젝트에 쓰인 annotation 정리 (@Embeddable, @ManyToOne...) github 포트폴리오 클론 조사 https://x-ojm.tistory.com/51 Database 용어 정리 이번에 주문 예제 프로젝트를 진행하면서 회원 테이블을 설계하는데 간단한 용어들의 개념을 뚜렷이 알기 위해 정리해보았다. 출처: https://www.inflearn.com/course/%EC%8A%A..

Study Plan/TXL 2021.11.17

Database 용어 정리

이번에 주문 예제 프로젝트를 진행하면서 회원 테이블을 설계하는데 간단한 용어들의 개념을 뚜렷이 알기 위해 정리해보았다. 출처: https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-JPA-%ED%99%9C%EC%9A%A9-1/lecture/24282?tab=note&speed=1.25 (인프런 강의 '실전!스프링부트와 JPA') 참고로 위와 같은 테이블에 있어서 Entity를 설계할 때 다대다 관계를 피하는 것이 좋다고 한다. (@ManyToMany 사용 지양) 참고: 외래 키가 있는 곳을 연관관계의 주인으로 정해라. > 연관관계의 주인은 단순히 외래 키를 누가 관리하냐의 문제이지 비즈니스상 우위에 있다고 주인으로 정하..

Etc 2021.11.17

2021-11-16 Tue

Today Xojm Learned H2 File DB Spring Boot 프로젝트에 연결 JPA 인프런 '실전! 스프링 부트와 JPA 활용1 - 김영한' 강의 결제 JpaShop 프로젝트 시작 (github repository 생성) Maven 빌드 및 배포 이해 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-JPA-%ED%99%9C%EC%9A%A9-1/dashboard 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는..

Study Plan/TXL 2021.11.16

[Maven]빌드하여 jar 파일 만들기

아래 Inflearn의 JPA 유료강의를 듣다가 나는 gradle이 아닌 maven을 이용하여 따라해보고자 build 방법을 기록해둔다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-JPA-%ED%99%9C%EC%9A%A9-1/lecture/24279?tab=curriculum&speed=1.25 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 학습 페이지 지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요.... www.inflearn.com 1. Maven 설치 http://maven.apache.org/download.cgi Maven – Dow..

Web/Else 2021.11.16

[Web]HttpSessionListener, AtomicInteger

HttpSessionListener를 이용해 중복로그인을 방지할 수 있는데, 이번 프로젝트에는 HttpSessionListener를 통해 session 만료 시간이 되면 WebSocket을 통해 message를 전달하여 자동 로그아웃시키는 기능을 구현하였다. HttpSessionListener의 객체는 Session이 생성되거나 제거될 때 발생하는 이벤트를 제공해주어 등록만해주면 세션을 통제할 수 있다. @WebListener //@RequiredArgsConstructor public class SessionConfig implements HttpSessionListener { @Override public void sessionCreated(HttpSessionEvent hse) { //세션 생성시 ..

Web/Else 2021.11.15

[Web]Token 기반 인증

지난 Feign Client 공부에 이어서 HeaderCoonfiguration을 왜 설정해주는지 이해하기 위해 공부하다가 session과 token 기반의 인증 특징들에 대해 알게되었다. https://x-ojm.tistory.com/12?category=978307 [Web]Feign Client 이번 프로젝트에서 FeignClient를 이용하여 개발해서 개념을 이해하고자 공부해보았다. 특히 공통 헤더를 추가하기 위해 커스터마이즈한 Configuration을 설정하는 부분에 대해 정리하였다. Feign Client x-ojm.tistory.com 기존 RestTemplate을 적용하여 Client.java를 구현하였을 때는 함수 내 header에 직접 token을 넣어 작성했는데, FeignClien..

Web/Else 2021.11.11

2020년 알고리즘 문제풀이 상황

https://swexpertacademy.com/main/code/problem/problemList.do?problemTitle=%EB%AA%A8%EC%9D%98&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=2 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com SW Expert Academy 취업준비를 하면서 20년도 2월에 삼성 상시코테 A형을 신청해뒀었다. 코로나 때문에 잠정연기 되었는데 1년반이 넘은 지금도 아직도 유효한지 모르겠다 ㅎ; ​ ​ 20개중 14개는 맞추고 6개틀렸따 점심시간이나 보호필름 같은건 도..

Study Plan/Else 2021.11.08