'프로그래밍'에 대한 검색결과 272개
프로그래밍와(과) 일치하는 검색결과가 없습니다.
제안:
- 모든 단어의 철자가 정확한지 확인하세요.
- 다른 검색어를 사용해 보세요.
- 더 일반적인 검색어를 사용해 보세요.
[스프링] Spring Data JPA VS JPA
안녕하세요. 제 기억 보존을 위해 간단하게 자료 남깁니다. 아래 사진은 아주 멋진 사진인데, 어디서 구했는지 출처를 몰라 출처를 못남기네요.. 죄송합니다. 저 처럼 스프링 부트부터 시작한 사람들은 Spring Data JPA와 JPA가 뭔지 혼동될 떄가 있습니다. 스프링 부트에서는 편의를 위해 Spring Data JPA를 씁니다. 흔히 JpaRepository를 extends해서 사용해서 사용이 편리합니다. 그냥 JPA는.. 저에게는 과거의 자료 스프링 부트가 나오기 전?에 쓰이던 EntityManager를 사용하는 그 기술?이 JPA입니다. JPA를 보다 손쉽게 사용할 수 있게 해주는게 Spring Data JPA이고.. 스프링 부트를 사용하는 여러분들이라면 이미 이것을 쓰고 있습니다. 그리고 보통 ..
[스프링] pod 힙 덤프 뜨는 방법과 인텔리제이에서 profiler로 보는 법
안녕하세요. 시간이 부족해 간단하게 과정만 글로 남기니 양해 바랍니다. ** 주의: 파드 힙 덤프를 뜨면 gc가 발생하는 것으로 알고 있음. 상용환경에서 괜찮을지 확인 필요 1. 문제의 파드 접근하기(pod의 이름이 my-pod 이라고 가정) kubectl exec -it my-pod sh 2. 파드 셀에서 힘 덤프 떠주는 프로그램 설치하기 pod shell 모드로 진입 후 아래의 명령어로 jattach 설치하기(https://github.com/apangin/jattach) apk add --no-cache jattach --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ 3. 실행 중인 프로세스 확인하기 아래의 명령어로 간단하게 실행 ..
[안드로이드] 구글 파이어베이스로 디버깅 쉽게 하기
1. Crashlytics Firebase.crashlytics.setUserId(userId) Firebase.crashlytics.log("exception message : $myMessage") 코틀린 코드에서 위와 같이 입력하고 예외가 발생하면 거의 실시간으로 Crashlytics에서 추가로 제공한 정보 확인 가능하기 때문에 디버깅이 더 쉬워짐. 참고: https://firebase.google.com/docs/crashlytics/customize-crash-reports?authuser=0&hl=ko&platform=android#kotlin+ktx 2. DebugView & Events 크래쉬를 발생시키지 않고도 파이어베이스에서 로그? 이벤트?를 확인할 수 있음. Firebase.analy..
맥에서 인텔 칩과 m1칩의 스프링 빌드 차이는 얼마나 날까?
안녕하세요. 시간이 없어서 간단히만 정리합니다. 1. 2019 맥북프로 16인치 인텔 i9 램 32GB: 빌드 버튼 누르고 로컬 WAS 뜨기까지 1분 55초 (Started XXXApplication in 49.027 seconds (JVM running for 50.311) 2. 2021 맥북프로 16인치 M1 Pro 램 32GB: 빌드 버튼 누르고 로컬 WAS 뜨기까지 1분 8초 (Started XXXApplication in 28.291 seconds (JVM running for 28.933) M1 Pro가.. 인텔 i9에 비해서 약 2배에 가까운 성능을 내주고 있습니다.. 정말 엄청 나네요. 거기다가 발열도 없고 소음도 없습니다. 맥 스튜디오가 빨리 출시되면 좋겠네요.
구글 FCM 간단히 테스트하기
안녕하세요. 시간이 촉박해.. 간단하게만 내용 남깁니다. FCM에는 크게 2종류의 메시지가 존재합니다. 알림 메시지, 데이터 메시지 이렇게 2가지인데요, 여기서 보내는 메시지는 알림 메시지입니다. (알림 메시지에 데이터?를 추가로 담을 수 있지만.. 그렇다고 해서 데이터 메시지가 되는 것은 아니며 둘은 태생이 다르다고 보시면 됩니다) 알림 메시지는.. 앱이 백그라운드에 있을 때 개발자가 따로 핸들링을 할 수 없기에 아마 앱이 백그라운드에 있든 포그라운드에 있든 대부분 데이터 메시지를 사용해야한다고 봅니다. 그러기 위해서는.. 포스트맨으로 하면 편한데요, 액세스 토큰 얻는게 문제였습니다. https://developers.google.com/oauthplayground 개발자 놀이터에 들어가셔서 구글 FC..
맥 인텔리제이에서 자동완성 안 됨(해결 방법)
저는 윈도우에서 IntelliJ나 안드로이드 스튜디오를 썼습니다. 최근에 Mac에서 인텔리제이를 쓰는데 ESC나 콘트롤+스페이스를 눌러서 하는 자동 완성이 안되더라구요. 왜 안되는지 이유를 찾기 못하고 계속 이전 글자 지웠다가 다시 쓰면 나오는 자동 완성을 이용했습니다. 그러다가 생각보다 불편해서 인터넷 검색을 통해 원인을 찾았습니다. 그 이유는 맥에서 이미 해당 단축키를 다른 용도(한/영 전환)로 사용하고 있기 때문입니다. 시스템 환경 설정 > 키보드 > 단축키 > 입력 소스 으로 가면 아래의 두 목록이 있는데 체크를 해제하면 됩니다. (아마 처음 것만 해제해도 될 것 같습니다)
[스프링][코틀린] validation이 안될 때 확인해볼 것
Kotlin으로 @Valid를 사용하려고 하니 잘 안됐습니다. 몇 가지 확인해볼 것을 아래에 정리합니다. 1. data class의 생성자에 제약 조건을 걸지 않았는지 체크 //잘못된 코드 data class UserInfoDto ( @NotEmpty(message="이메일 주소를 입력하세요") @NotBlank @Email(message="이메일 주소가 올바르지 않습니다") var email : String?, var password : String?, var role : String?, ) //올바른 코드 data class UserInfoDto ( @field:NotEmpty(message="이메일 주소를 입력하세요") @field:NotBlank @field:Email(message="이메일 주소..
slf4j LoggerFactory쓸 때 주의할 점
slf4j를 사용하여 로깅을 하는데 로그가 제대로 출력되지 않는 현상이 발견됐습니다. logger.debug("displayRegistration: infoDto = {}", infoDto) ifoDto에는 적당한 값이 들어가 있기에 출력이 되어야 함에도.. 아래와 같은 로그가 출력됐습니다. displayRegtration: infoDto = {} 문제의 원인은 import였습니다. LoggerFactory를 import할 때 3개 lib이 떴었습니다. 별 생각없이 1번째 rt.jar에 속한 com.sun.org.slf4j.internal.LoggerFactory를 import했더니 동작이 제대로 되질 않네요. import com.sun.org.slf4j.internal.LoggerFactory //문제..
OOP의 SOLID 알아보기
OOP에서 SOLID는 객체지향에서 어떻게 개발하면 좋다에 대한 5가지 원칙에서 앞 글자를 따온 이름입니다. Single Responsibility Principle Open-closed Principle Liskov Substitution Principle Interface Segregation Principle Dependency Inversion Principle 인터넷에 검색해보면 이에 대한 내용이 좀 있으나 이해가 잘 되는 글이 없어서 직접 정리해보려고 합니다. 1. Single Responsibility Principle(단일 책임의 원칙) 클래스를 설계할 때 각 클래스는 하나의 일만(only one job) 하도록 설계하자는 원칙입니다. 하나의 일을 어떻게 봐야하나 좀 애매하지만 대충 느낌은..
[자바] Anonymouns class는 inner class일까 static class일까
익명 클래스(Anonymouns class) 문법은 아주 흔하게 사용하게 되는 자바의 문법이 아닌가 싶습니다. 람다를 쓰면서도 이 익명 클래스가 사용되는 듯 한데, 호기심이 생긴 김에 간단하게 조사좀 해보려고 합니다. 1. Inner 클래스와 Static 클래스 자바에서 중첩(nested) 클래스는 2가지 종류가 유명합니다. (전체는 총 4개) Inner 클래스와 Static 클래스로 불리는데 자바를 좀 써본 사람들이라면 이 차이를 알 것입니다. Inner 클래스는 Outer 클래스에 대한 참조를 가지고 있어 Outer 클래스의 멤버에 바로 접근할 수 있습니다. 그러나 Static 클래스는 기본적으로는 Outer 클래스의 멤버에 접근할 수 없고 생성자로 Outer 클래스의 객체를 받든지 해야합니다. cl..
java.lang.ClassNotFoundException: com.netflix.hystrix.exception.HystrixRuntimeException
문제 현상 스프링 부트와 클라우드의 버전을 변경 후 다음 날 앱을 실행하니 에러가 발생하고 종료됐습니다. (오잉.. 어제는 잘 됐는데 maven은 종종 이럴 때가 있는 것 같습니다. gradle에선 이런 경우가 없었던 것 같습니다.) Caused by: java.lang.ClassNotFoundException: com.netflix.hystrix.exception.HystrixRuntimeException at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0-272] at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0-272] at sun.misc.Launc..
[서버][스프링] Error creating bean with name 'configurationPropertiesBeans'
문제 현상 자바로 작성된 스프링 앱의 버전을 올리고 실행했을 때 에러가 발생하고 바로 종료됨 스프링 부트 버전: 2.0.3.RELEASE -> 2.4.4 스프링 클라우드 버전: Finchley.RELEASE -> 2020.0.2 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationPropertiesBeans' defined in org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration: Bean instantiation via factory method failed; neste..
[서버][스프링][Kotlin] WebClient의 response를 generics로 매핑하는 방법
스프링에서 WebClient의 response를 generics으로 매핑하는 방법을 알아보겠습니다. generics 관련 정보는 컴파일 단계에서 사라지므로 간단하게 해결되지 않습니다. 더군다나 코틀린으로 하면 조금 더 복잡해 지는 것 같네요. Generics가 없다면 그냥 아래와 같이 사용하면 됩니다. bodyToMono(ApiResult::class.java) 그런데 response가 ApiResult의 타입이라면 방법을 좀 바꿔야 합니다. java라면 bodyToMono(new ParameterizedTypeReference() {}) 위의 코드를 사용하면 됩니다. 코틀린에서는? bodyToMono(object : ParameterizedTypeReference() {}) 위와 같이 사용하면 됩니다...
[서버][스프링] WebClient post로 request pody 전달하는 방법
val response = webClient .mutate() .build() .post() .uri("/v1/items/roomPriceSum") .bodyValue(roomPriceSumDtoList) .retrieve() .bodyToMono(ApiResult::class.java) WebClient에서 그냥 body()를 사용하면 Flux나 Mono와 같은 wrapper?를 써야한다는 불편함이 있습니다. body()가 아닌 bodyValue를 쓰면 더 쉬운 것 같네요. 참고 stackoverflow.com/a/61379713/7225691 Spring WebFlux throws 'producer' type is unknow when I return value in the response body ..
[메이븐] compile 과 install 차이점
*mvn compile 했을 때 "C:\Program Files\Java\openjdk-8u272-b10-windows-64\bin\java.exe" -Dmaven.multiModuleProjectDirectory=C:\Users\mazend\IdeaProjects\gongga_spring\gongga\common "-Dmaven.home=C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.1\plugins\maven\lib\maven3" "-Dclassworlds.conf=C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.1\plugins\maven\lib\maven3\..
[스프링][map struct] error: Property "itemId" has no write accessor in ItemDtoInfo.
문제 현상 메이븐 빌드 시 아래의 에러가 발생함 error: Property "itemId" has no write accessor in ItemDtoInfo. *ItemDtoInfo 코드 data class ItemDtoInfo(val itemId: String, var roomId : String, var incomeType: Int, var price: BigDecimal, var item: String) 원인 ItemDtoInfo에서 itemId가 val로 선언되서 생긴 문제로 보입니다. val로 선언되면 컴파일 후에도 getItemId() 함수만 생성되고 setItemId()가 생성되지 않습니다. 그런데 컴파일 단계에서 생성된 mapper implement를 보면 생성자가 아닌 setXXX() ..
[링크][영어] db의 timestamp를 Entity에 매핑하는 방법
제가 볼 때는 LocalDateTime을 이용하는게 좋아보이네요. vladmihalcea.com/date-timestamp-jpa-hibernate/ How to map Date and Timestamp with JPA and Hibernate - Vlad Mihalcea Learn the best way to map Date, Timestamp, or DateTime column types when using JPA and Hibernate using Date, LocalDate, and LocalDateTime. vladmihalcea.com
[링크][영어] git flow 참고 사이트
친구가 알려준 git flow 참고 사이트입니다. danielkummer.github.io/git-flow-cheatsheet/ git-flow cheatsheet danielkummer.github.io 그리고 이건 git이나 git flow를 좀 더 편하게 UI로 처리할 수 있는 SourceTree라는 프로그램의 가이드입니다. blog.sourcetreeapp.com/2012/08/01/smart-branching-with-sourcetree-and-git-flow/ Smart branching with SourceTree and Git-flow | SourceTree Blog By Steve on August 1, 2012 Note: for brevity this article refers to G..