일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- IT 면접 준비
- Spring Boot
- DP
- 이중우선순위큐 java
- 이중우선순위큐 자바
- 백트래킹
- 프로그래머스 이중우선순위큐 java
- oracle ansi sql
- Java
- ansi sql 단점
- 이분탐색
- 그리디
- 백준
- SQL
- 프로그래머스
- DFS
- ansi sql 장점
- DBASE&
- CJ DBASE&
- 프로그래머스 이중우선순위큐
- 프로그래머스 이중우선순위큐 자바
- Gradle
- 디베이스앤
- 디베이스앤 인턴 후기
- BFS
- 위상정렬
- JPA
- 면접 필수 질문
- oracle ansi
- 개발자 면접 준비
- Today
- Total
목록Programming (22)
쉬운 프로그래밍
Gradle이란? 대부분의 소프트웨어에 유연하게 적용되도록 개발한 JVM 기반의 오픈소스 빌드 자동화 도구이다. 구체적 내용 및 장단점은 https://docs.gradle.org/current/userguide/what_is_gradle.html를 참고해보자. Gradle vs Maven? 나중에 작성하기 적용해보기 https://start.spring.io/ 에서 생성한 프로젝트의 build.gradle을 살펴보며 사용되는 configuration들에 대해 알아보자. 1. plugins plugins { id 'java' } 위 코드는 JAVA 프로젝트를 빌드하기위한 task를 생성하는 java plugin을 적용한다. 만약 Spring Boot 프로젝트를 빌드해야 하는 경우에는 아래와 같은 코드를 ..
Gradle 프로젝트를 import하는 과정에서 아래와 같은 에러가 발생했습니다. Unable to find method 'org.gradle.api.artifacts.result.ComponentSelectionReason.getDescription()Ljava/lang/String;'. 인텔리제이가 Re Import를 수행하거나 IDE를 껐다 키라고 했지만 둘 다 해봐도 해결 안됐습니다 ㅠ... 대부분의 상황에서는 위의 과정을 거치면 된다고 합니다. 이래저래 삽질을 해본 결과 Gradle 버전을 바꿔서 에러를 해결할 수 있었습니다. gradle-wrapper.properties를 확인해보면 아래와 같습니다. 빨간색 부분이 gradle 버전입니다. 처음에 import 할 때는 7.2.x 버전이었는데, ..
최근 Naver Search Ad API를 기반으로 한 프로젝트를 진행하고 있다. Unirest를 사용해서 데이터를 주고 받고 있는데, 그 내용에 대해서 정리해보려고 한다. Unirest는 오픈소스로 배포되어있는 자바 라이브러리이다. GIT https://github.com/Kong/unirest-java Kong/unirest-java Unirest in Java: Simplified, lightweight HTTP client library. - Kong/unirest-java github.com 공식문서 http://kong.github.io/unirest-java/ Documentation - Unirest in Java: Simplified, lightweight HTTP client libra..
1. Logback 자바에서 지원하는 로깅 라이브러리다. Log4j의 개선버전 2. Slf4j Log4j, Logback 등 다양한 Logging 프레임워크를 추상화한다. @Slf4j 어노테이션을 통해 사용할 수 있다. 3. Log Level 1) Error 2) Warn 3) INFO 4) DEBUG 5) TRACE 로그 레벨은 출력 레벨을 설정하여 그 이상의 레벨을 가진 로그에 대해서 출력한다.
1. uses unchecked or unsafe operations. 에러 원인 제네릭 타입 클래스를 선언할 때 자료형이 명시되지 않았을 때 발생한다. 2. 해결 테스트 코드를 작성하면서 아래와 같은 에러를 확인하였다. 테스트 코드는 문제없이 실행되는데 왜 안되니 찾아보니 타입 문제였다. 이 친구가 문제였다. 해결
아래는 서비스 코드이다. 1. 더티체킹 위의 메소드는 update 기능을 수행하고 있지만 DB에 쿼리를 날리는 부분이 존재하지 않는다. 이것이 가능한 이유는 JPA의 영속성 컨텍스트 때문이다. 영속성 컨텍스트는 엔티티를 영구 저장하는 환경으로 생각하면 된다. JPA는 엔티티가 영속성 컨텍스트에 포함되어있는지, 아닌지를 중시한다. 엔티티 매니저가 활성화된 상태로 트랜잭션 안에서 DB를 통해 데이터를 가져오면 이 데이터는 영속성 컨텍스트가 유지된 상태이다. 즉 이 상태에서 해당 데이터의 값을 변경하면 트랜잭션이 끝나는 시점에 해당 테이블에 변경사항을 반영한다. 요약해서 말하면 Entity 객체의 값만 변경하면 별도로 Update 쿼리를 날릴 필요가 없다는 것이다. 이 개념을 더티 체킹(Dirty Checki..
각설하고 본론부터 말하면 @ManyToMany 관계는 사용하지 않는 것이 좋다고 한다. RDBMS는 정규화된 테이블 2개로 N:M 관계를 표현할 수 없다. 그럼 어떤 방식으로 N:M 관계를 다뤄야할까? 바로 조인 테이블을 추가해서 @OneToMany, @ManyToOne 관계를 통해야한다. 코드를 통해 이해해보자. # Product Entity @Entity public class Product { @OneToMany(mappedBy = "product") private List CategoryProducts = new ArrayList(); ... } # Category Entity @Entity public class Category { @OneToMany(mappedBy = "category") p..
Cascade란? cascade는 @ManyToOne이나 @OneToMany에 들어갈 수 있는 옵션이다. 트랜잭션이 일어날 때 Entity 변화를 연관관계를 가진 Entity에 전파시키는 것을 목적으로 한다. Entity 상태란? 1. Transient : JPA가 알지 못하는 상태를 의미한다. 즉 객체를 생성하거나 변경하여도 JPA가 그 객체를 인지하지 못하고 있는 상태를 의미한다. 2. Persistent : JPA가 관리중인 상태를 의미한다. Persistent 상태가 되더라도 바로 Insert가 발생해서 데이터베이스에 저장하는 것이 아닌, Persistent에서 관리하고 있던 객체가 데이터베이스에 넣는 시점에 데이터를 저장함 (1차 캐싱, Dirty Checking, Write Behind 등 기..