일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 스프링공부
- 스프링
- 카프카
- 자료구조공부
- 기술공부
- Kafka
- JPA공부
- nestjs공부
- 플러터 공부
- K8S
- JPA
- nestjs스터디
- 코테준비
- 코테공부
- 자바공부
- JPA 공부
- 스프링부트공부
- DDD
- querydsl
- Flutter
- JPA예제
- nestjs
- 플러터 개발
- 프로그래머스
- 기술면접공부
- JPA스터디
- Axon framework
- 스프링 공부
- 스프링부트
- 알고리즘공부
- Today
- Total
목록Language (93)
DevBoi
1) 변수 선언변수 선언에는 아래 3가지가 있다.var -> 함수 어디서든 접근을 할수 있어 잘 사용하지 않는다.let -> block scope로 저장, let은 값을 변경할수 있다const -> let과 같이 block scope로 저장, let과 다르게 값을 변경할 수 없다. 2) 타입 명시단순 변수let test1: string = "123123";let test2: number = 123;let test3: boolean = false;console.log(test1);console.log(test2);console.log(test3); 함수function test1(message: string): void{ console.log("gd");}function test2(message: nu..
1) 설치node설치 이후, tsc로 해당 파일을 컴파일 할 수 있다.tsc가 동작하지않을때는 아래 명령어로 설치sudo npm i -g typescript 빌드 시킬 폴더에서 해당 커맨드 입력, config 파일 자동 생성 확인tsc --init 2) 컴파일아래와 같이 간편하게 컴파일하면, 동일 js파일이 생성된다.(옵셔널 적으로, js파일이 필요할때 사용)tsc (파일명)ex. tsc study01.ts 이후 해당 파일을 아래와 같이 실행 시키면 실행이된다.(js파일을 생성한 경우, ts라는 확장자를 빼도 실행이된다)node ex. node study01.ts 결과 사실 이도저도 싫다고하면 플레이그라운드에서 문법적인걸 다 익히면 장땡이긴한다.대부분 웹이나 타입스크립트를 엮어서하는 프레임워크를 ..
불변 DTO의 성격인 Record와 DTO간의 매핑을 코드를 자동생성해주는 라이브러리 Mapstruct에 대한 정리를 해보자 1. RecordRecord는 불변성을 보장하는 타입이다. 따라서 신뢰성이 높아그래서 주로 Request,Response,Configuration에 대한 정보를 담아서 사용한다. 아래와 같은 레코드의 소스가 있다고 가정하자public record MemberRequest( @Schema(description = "닉네임", example = "스미스") String nickname, @Schema(description = "프로필 이미지 링크", example = "이미지 주소") String imgUrl, @Schema(description = "이름", example = ..
제네릭에 대해서 좀 더 심화된 부분을 공부해보자 ObjectMapper에 대해서 공부를 하다가. 생긴 궁금증은 꼬리의 꼬리를 물었고, 내가 모르는 부분까지 봉착했다. 결과적으로 ObjectMapper를 사용할때 제네릭 관련 변수로 뺄때 왜 TypeReference를 선언해야하는지 이해가 안됬다. 정확히는 이유를 정확하게 몰랐다. 제네릭의 type erasure에 대해서 먼저 알아야 한다. 타입 소거라고도 한다. 런타임에 타입에 대한 정보를 버리는 것이다. bounded type -> bound type unbouned type -> Object 1) Unbounded Type public class SmithTest { public static T unboundedType(T t) { return t; ..
Java stream을 쓰다보면, Map을 많이 쓴다. 가령 이런.. 상황에서 말이다. dtos.stream().map(x -> x.getAddress()).collect(Collectors.toList()); 근데 어떤 상황에서 해당 방식으로 구현이 되어있었다. List dtos = List.of(new MemberDto("name1","id1","add1"),new MemberDto("name2","id2","ad2"),new MemberDto()); List result = new ArrayList(); for(MemberDto memberDto : dtos){ result.add(memberDto.getId()); result.add(memberDto.getName()); } 레거시 코드에서는 이..
뭐든 그냥 쓰는 것 만큼 멍청한건 없다. 이제 자주쓰지만 그동안 정확히 왜 쓰는지 잘 모를 만한 것에 포스팅 하겠다. 1) static block - 클래스가 로딩되고, 클래스 변수가 준비된 후 자동으로 실행되는 블록 - 한 클래스안에 여러개의 static 블록을 넣을 수 있따. - 선언된 스태틱 블록 대로 실행된다. 용도 : 주로 클래스 변수를 초기화 시키는 코드를 둔다. 아래와 같은 코드가 있다고 가정하자. @NoArgsConstructor(access = AccessLevel.PRIVATE) public final class BikeShop { public static String name = "b1"; static{ System.out.println("static1"); name = "b2"; }..
제네릭을 좀 잘 써보자. 제네릭은 개인적인 생각으로는 인터페이스의 존재이유와 비슷하다고 생각한다. 타입이나 제약을두지 않고, 해당 상속받은 개체에서 자유롭게 짜는것을 의미한다. 예를 바로 들어보자 package com.smith.PqrsFramework.Interface; public class OrderInterface { T name; R id; public T getName(){ return this.name; } public R getId(){ return this.id; } public void setName(T name){ this.name = name; } public void setId(R id){ this.id = id; } } 간단하게 제네릭 클래스를 사용하는 방법은 바로 이렇다. 그러..
MapStruct에 대한 적용을 다시 공부해보려고한다. 새로운 기능들도 조금 나온 것같고, 예전에 써서 기억도 안나서, 다시 공부할겸 정리를 한다. 1. Mapstruct 해당 기술은, Entity와 Dto간의 매핑을 지원하는 라이브러리다. getter,setter를 남발하여, 직접 구현하는 것보다. 라이브러리를 쓰는 것이 좋다. 유사하게는 MdoelMapper, 성능은 이게 더 빠르다. Mapstruct 생성 @Data @AllArgsConstructor public class MemberResponse { private String name; private String id; } @Data @AllArgsConstructor public class Member { private String name;..
오류 발생 > Process 'command '/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 해결방법 1. File > Settings > Build Tools > Gradle Gradle 인텔리제이 IDEA 로 변경 이렇게 하면 해결이 된다.
Jdk 버전에 대한 팔로우업에 잊고 행복한 삶을 살다가 Jdk 14부터 정식 릴리즈한 Record class라는 애가 나왔고. DTO로써 사용하기 최고라고 추천을 받아 공부겸 포스팅을 진행하려고한다. 1) Record 클래스가 뭔데? 레코드란 데이터클래스 이며, 순수하게 데이터를 보유하기 위한 특수한 종류의 클래스이다. 코틀린의 데이터 클래스와 비슷한 느낌이다. 데이터의 유형만 딱 나타내는 느낌으로, DTO클래스를 생성할때 굉장히 간결해지는 장점이 있다. 2) 샘플 소스 및 대략적인 사용 예제 한 30%의 사람들 혹은 옛날 코드들은 이렇게 DTO가 짜여있다. package com.inna.innabackend.dto; public class SampleRecordDto { private String na..