반응형

2020/12 24

[백기선님의 자바 라이브 스터디] 4주차 - 선택문과 제어문

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 선택문 제어문 정리하기에 앞서 모든 소스는 github에 있습니다. 선택문 자바에서 선택문은 크게 if문과 switch문 2가지가 있습니다. 먼저 if문에 대해서 알아보겠습니다. if문 if문은 크게 3가지 형태로 사용할 수 있습니다. if ( {조건문} ) { 로직 } if 문 내의 조건이 참일 경우 로직을 실행합니다. if ( {조건문} ) { 로직1 } else { 로직2 } if 문 내의 조건이 참일 경우 로직1을 실행합니다. if 문 내의 조건이 거짓일 경우 로직2를 실행합니다. If ( {조건문} ) { 로직1 } else if ( {조건문} ) { 로직2 } else ..

Study/java 2020.12.28

[백기선님의 자바 라이브 스터디] 3주차 - 연산자

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 간단한 용어 정리 정리하기에 앞서 관련용어를 정리해보겠습니다. 연산 ( operations ) 프로그램에서 데이터를 처리하여 결과를 얻어내는 것 연산자 ( operator ) 연산에 사용되는 부호, 기호 피연산자 ( operand ) 연산에 대상이되는 데이터 연산식 ( expressions ) 피연산자와 연산자로 연산을 하는 과정 public void expressi..

Study/java 2020.12.27

[백기선님의 자바 라이브 스터디] 2주차 - 자바 데이터 타입, 변수 그리고 배열

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다. 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 프리미티브 타입이란? primitive type 프리미티브란 원시적인 이라는 뜻입니다. 그럼 원시적인 타입이라는 뜻이 되겠네요. Java에서는 메모리에 직접 값을 할당하는 변수를 프리미티브 타입이라고 합니다. 프리미티브 타입의 변수를 할당하면 JVM의 메모리 즉, Runtime Data Areas의 stack 영역에 저장됩..

Study/java 2020.12.23

[백기선님의 자바 라이브 스터디] 1주차 - JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가.

www.youtube.com/watch?v=HLnMuEZpDwU 목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기. 학습할 것 JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 JVM이란 무엇인가? Java Virtual Machine 영어를 그대로 해석하면 자바 가상머신입니다. 가상머신의 장점은 새로운 가상 환경을 띄워동작할 수 있기 때문에 OS에 상관없이 동작시킬 수 있습니다. 그러한 가상 환경을 이용하여 자바 바이트코드를 실행시킬 수 있는 환경을 제공해줍니다. JVM이 없다면? 내가 생성한 파일을 컴파일하고 나온 바이트코드들이 OS마다 다릅니다. 이 말은 즉 Window에..

Study/java 2020.12.21

[Querydsl-JPA] Querydsl JPA를 사용하며.. "*" 아스타리스크 사용방법

개발할 때 테이블의 모든 컬럼을 조회할 경우가 있습니다. 그때 Querydsl-JPA를 사용할 때 어떻게 사용할 수 있는지 작성해보겠습니다. 모든 소스는 github에 올려두었습니다. 먼저 하고 싶은 쿼리가 어떤 것인지 작성해보겠습니다. select s.* , etc_option from staff s join store st on s.store_id = st.id where s.name = 'staffV' limit 1 이것과 동일한 Querydsl을 작성해보겠습니다. 먼저 Vo를 생성합니다. @Getter @Setter @ToString public class StaffEtcVo { private Staff staff; private String address; } 필드에 Staff Entity를 선..

Develop/spring-data 2020.12.20

nested exception is java.lang.IllegalArgumentException: No sources given

오늘도 어김없이 발생하는 Exception!! 증상 Querydsl-JPA를 사용중 에러가 발생했습니다. 에러를 보면 IllegalArgumentException 입니다. 쿼리를 생성할 때 잘못하면 보통 이 에러가 발생합니다. 그리고 No Sources Given.. 번역기를 돌려면 출저가 없다는 에러?? nested exception is java.lang.IllegalArgumentException: No sources given public StaffVo search(Long id) { return jpaQueryFactory .select(Projections.fields(StaffVo.class, staff.id, staff.name )) .where(staff.id.eq(id)) .fetchO..

TroubleShooting 2020.12.19

[Querydsl] Querydsl을 적용하며.. class 파일명 주의

querydsl을 적용한 프로젝트를 진행하면서 나온 이슈를 정리해보겠습니다. JPARepository에서 Querydsl을 사용할 수 있게 Custom(interface), impl 로 세팅이 되어있었습니다. 세팅방법은 여기를 참조해주세요. 데일리 미팅 도중 Custom Interface의 naming을 변경이 확정되었습니다. AS-IS : CustomizedDomainRepository TO-BE : DomainQueryRepository Customized란 단어는 너무 포괄적이어서 변경하기로 결정! 증상 Class명을 변경하고 Application을 실행하자 에러가 발생하였습니다. No property search found for type Staff! Staff는 Entity 객체입니다. 구현 된..

Develop/spring-data 2020.12.18

[Hateoas] Rest API를 구현해보자

지난 글에서는 Rest API가 무엇인지? 우리가 Rest API로 알고 사용했던 것이 RestAPI가 아니었고 HttpAPI 였다는 것을 정리하였습니다. 이번 글에서는 Rest API를 직접 구현해보겠습니다. 모든 소스는 github에 올려두었습니다. 개발자는 소스로 대화하고 설명하는 것이 가장 쉽다! build.gradle 최소 아래와 같은 의존성을 추가해줍니다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-hateoas' compileOnly 'org.projectlombok:lombok' a..

Study/spring 2020.12.17

Rest API란?

Rest API에 대해서 정리해보겠습니다. 우리가 흔히 알고 있는 Rest API를 과연 Rest API로 사용하고 있는지 알아보겠습니다. 모든 소스는 github에 올려두었습니다. 참조 www.youtube.com/watch?v=RP_f5dMoHFc Rest API란? Rest REpresentational State Transfer API Application Programming Interface 먼저 Rest에 대해서 알아보겠습니다. Rest의 풀네임을 해석하면 재현상 상태 전송 입니다. 좀 더 말을 풀어본다면 분산 하이퍼미디어 시스템을 위한 아키텍쳐 스타일입니다. 좀 더 쉽게한다면 웹을 위한 아키텍쳐 스타일입니다. Rest를 구성하는 스타일 client-server Client Server 구조..

Study/spring 2020.12.16

Spring Triangle [IoC, AOP, PSA] - 3탄 PSA편

Java개발자로 전향한지 4년차가 되었습니다. 문득 저에 대해서 돌아보는 시간을 강제로 갖게되었고 난 개발자로써 살아가고 있는가에 대해서 궁금해졌습니다. 1편 IoC편 2편 AOP편 3편 PSA편 모든 소스는 github에 올려두었습니다. 나에게 질문을 해보았습니다. 기초는 튼튼한가? 자바에 대해서 얼만큼 알고 있지? Spring은? 블로그를 시작한지 한달이 조금 넘어가는 시점에서 다시 개념을 정리하고 복습하는 의미에서 되돌아가기로 하였습니다. 이번 글에서는 Spring Triangle 중 하나인 PSA에 대해서 정리해보겠습니다. PSA란? Portable Service Abstraction 그대로 번역하자면 호환성있는 서비스 추상화이다. 무슨 의미야 한국말인데 무슨말이야? 조금 더 이해하기 쉽게 설명하..

Study/spring 2020.12.15

Spring Triangle [IoC, AOP, PSA] - 2탄 AOP편

Java개발자로 전향한지 4년차가 되었습니다. 문득 저에 대해서 돌아보는 시간을 강제로 갖게되었고 난 개발자로써 살아가고 있는가에 대해서 궁금해졌습니다. 1편 IoC편 2편 AOP편 3편 PSA편 모든 소스는 github에 올려두었습니다. 나에게 질문을 해보았습니다. 기초는 튼튼한가? 자바에 대해서 얼만큼 알고 있지? Spring은? 블로그를 시작한지 한달이 조금 넘어가는 시점에서 다시 개념을 정리하고 복습하는 의미에서 되돌아가기로 하였습니다. 이번 글에서는 Spring Triangle 중 하나인 AOP에 대해서 정리해보겠습니다. AOP란? Aspect Oriented Programming 관점 지향 프로그램입니다. 처음에 이 말만 듣고 아... 그렇쿠나 무슨말이구나? 머리가 하얘졌었습니다. 간단하게 이..

Study/spring 2020.12.14

Spring Triangle [IoC, AOP, PSA] - 1편 IOC편

Java개발자로 전향한지 4년차가 되었습니다. 문득 저에 대해서 돌아보는 시간을 강제로 갖게되었고 난 개발자로써 살아가고 있는가에 대해서 궁금해졌습니다. 1편 IoC편 2편 AOP편 3편 PSA편 모든 소스는 github에 올려두었습니다. 나에게 질문을 해보았습니다. 기초는 튼튼한가? 자바에 대해서 얼만큼 알고 있지? Spring은? 블로그를 시작한지 한달이 조금 넘어가는 시점에서 다시 개념을 정리하고 복습하는 의미에서 되돌아가기로 하였습니다. 이번 글에서는 Spring Triangle 중 하나인 IoC에 대해서 정리해보겠습니다. IoC란? Inversion Of Control 그대로 해석하자면 제어의 역전입니다. 말 그대로 제어를 역전시키는 방법입니다. 개발자는 소스로 얘기하자는 주의라서 예제소스를 작..

Study/spring 2020.12.13

[Monitoring] Actuator, Prometheus를 이용한 monitoring해보자! - 3편 (Grafana docker로 띄우기)

모니터링 서비스가 없으면 정말 불편합니다. 간단한 예로 ~ 하루는 출근했는데 "** 서비스가 실행이 안되는데?" 확인해보니 메모리 초과로 셧다운되있었습니다. 개발 서버에서 테스트 중에 public망에 있던 서비스와 통신 중에 계속 에러가 발생 확인해보니 셧다운되있었습니다. ** 서비스 죽었어? 잠시만요... 터미널 열고 타자 다다다다다 ps -ef... docker ps .. 매번 이럴순 없습니다. 소스는 github에 올려놓았습니다. 1편 - actuator 적용한 application을 띄우기 2편 - monitoring application, prometheus docker로 띄우기 3편 - Grafana docker로 띄우기 4편 - AlertManager 적용 actuator는 Spring In..

Develop/devops 2020.12.12

[JPA] java.lang.NoSuchMethodException: org.springframework.data.domain.Pageable.<init>

오늘도 어김없이 Exception 발생했네요! 요즘은 Exception이 발생하면 어떻게 풀어서 블로그를 작성할까하고 Exception을 기다리고 있습니다 :) 증상 오늘 발생한 에러는 Querydsl에 Paging 처리가 필요하여 Pageable을 사용했을 때 발생하는 에러였습니다. 아래와 같은 코드를 작성하여 Parameter로 Pageable 객체를 받는 부분에서 에러가 발생하였습니다. @RestController @RequiredArgsConstructor// DI public class StoreController { private final StoreService storeService; @GetMapping(value = "/stores/{storeId}") pubic DefaultRespo..

TroubleShooting 2020.12.11

[JPA] Querydsl에 pageable을 적용하며... 2가지 방법을 소개하겠습니다.

Querydsl을 적용하고 paging 처리를 위해 pageable을 적용한 내용을 정리하겠습니다. Querydsl을 적용방법은 지난 글에 정리해놓았습니다. 지난글에서 정리한 Querydsl 3가지 방법 중 제가 테스트를 해본 2가지 방법 모두 적용방법을 알아보겠습니다. QuerydslRepositorySupport 상속받아서 사용 @Repository public class StoreRepositorySupport extends QuerydslRepositorySupport { private final JPAQueryFactory jpaQueryFactory; private final EntityManager entityManager; /** * Creates a new {@link QuerydslRe..

Develop/spring-data 2020.12.10
728x90
반응형