본문 바로가기
반응형

전체 글253

스프링 프레임워크 기본 다지기 스프링프레임워크 기본 다지기 일을 하다가 가끔씩 명확하게 개념을 정리를 해둬야겠다고 마음먹었는데... 드디어 오늘 짧게나마 정리를 해보려 한다. 스프링 컨테이너와 빈 내 생각에는 용어와 개념이 꽤 중요하다고 생각하기는 하지만 활용하는 능력이 없다면 의미 없다고 본다. 결국 프로그래밍 100가지를 할 줄 알아도 사람들이 사용하는 서비스가 아니라면 의미가 없지 않을까 싶다. 스프링 프레임워크를 접하게 되면 자주 나오는 용어가 컨테이너, 빈, Ioc, DI 다. 최대한 간단하게 알아보자Ioc (Inversion of Control)대부분 제어의 역전 이라는 이해하기 힘든 말로 설명한다. Ioc를 제대로 이해하기 위해서는 디자인패턴에 대해 약간의 공부가 필요하다. 또는 프로그래머로써 일을 해왔다면 더욱 쉽게 이.. 2023. 6. 24.
Java map object value to integer Casting Java map object value to integer Casting 프로젝트를 하고 있는데 이곳은 패턴을 Map을 사용해 데이터베이스에서 값을 가져온다. 한때 Vo객체와 Map객체 패턴을 놓고 뭐가 더 좋네 말들이 많았던 기억이 있는데 내 입장에서는 뭐든 관계없다. 다만, 숫자로 계산을 하는 서비스를 만든다고 한다면 두 패턴의 장단점을 잘 이해하고 사용해야 한다. 데이터베이스에서 Map형태로 값을 가져오게 되면 Number 타입들은 BigDecimal 형태로 Map Object에 담기는 것으로 보인다. 자바로 가져와 Number 값들을 비교나 연산을 하게 되는 어떤 로직들이 들어가게 되면 꼭 숙지해야 된다. 뭐든 캐스팅이 될줄 알았는데 int 캐스팅은 먹질을 않고 to_String을 사용하지 않고 .. 2023. 6. 15.
스프링부트 WebFlux 스트리밍 스프링부트 WebFlux 스트리밍 간단하게 스프링 부트 Reactive 예제를 만들어 보고 어떤 느낌? 서비스? 인지 알아보도록 한다. 스프링부트에 리액티브 방식(기술)이 추가된 것을 설명하려면 많은 사전지식과 근 10년 내외의 IT서비스 상황을 이해해야 하므로 글이 너무 길어질 수 있으므로 우선은 모노리틱 아키텍처의 한계를 극복하고 MSA(마이크로 분산서비스)에 적합한 대안? 또는 기술 정도로만 이해하고 있자. 솔직히 내 생각에는 리액티브 프로그램을 제대로 이해하려면 IT전반의 배경지식도 필요하지만, 블럭킹과 논블럭킹, 동기와 비동기, 스레드와 프로세스까지 어느 정도 깊이 있게 이해를 해야만 제대로 된 이 기술을 익힐 수 있고 왜 익혀야 하는지 동기까지 가질 수 있다. 모두들 러닝 곡선이 가파르다고 하.. 2023. 6. 11.
QCY T13 ANC 노이즈 캔슬링 무선 블루투스 이어폰 QCY T13 ANC 노이즈 캔슬링 무선 블루투스 이어폰 아이폰 12 Pro로 바꾼 지 3개월이 되어 갑니다. 음향기기에 그리 큰 관심은 없지만 나름 출퇴근 거리가 1시간 가까워서 반강제적으로 이어폰을 사용할 수밖에 없는 상황입니다. 아내가 소지한 구형 WF-1000X 제품을 몇번 빌려서 사용해 봤는데 오른쪽 제품 통신이 너무 끊겨서 사용하기가 싫어지더군요. 약 4년 전에 QCY T1을 15,000원 정도에 구입해서 사용했던 경험이 있습니다. 비록 뽑기 운이 안좋아 충전이 안돼서 반품을 했더니 다행히도 판매자가 정상 제품을 보내줘서 사용했었습니다. 3년은 고장 없이 사용했는데 몇 번 떨어뜨리다 보니 결국 세월의 풍파와 함께 망가져버렸습니다. 만 원대라 마음 편하게 버리긴 했지만 다시 구입하고 싶어도 뽑기.. 2023. 6. 9.
인텔리J Junit 사용하는 방법 인텔리J Junit 사용하는 방법 이번 포스팅은 JUnit을 인텔리J에서 사용하는 방법에서 대해 알아본다. TDD를 공부해 보기 마음먹었는데 JUnit 세팅하는 방법정도는 익혀둬야 할 듯하다. 본격적으로 사용해 본 경험이 없기 때문에 포스팅해 두고 생각날 때마다 보기 위해서다. 사실 TDD는 10년 전부터 알고 있었지만 일을 하면서 사용하는 프로젝트가 없었다. 솔루션 회사가 아닌 이상 SI에서는 TDD를 사용하는 곳은 본 적이 없다. 그렇지만 다행히도 내가 해온 방식은 TDD 개념과 비슷하게 일을 해오고 있었다. 테스트하기 쉬운 코드는 타 코드의 결합과 의존성이 떨어지거나 없다. 테스트하기 쉬운 코드는 잘 분리되어 있다. 우선, 인텔리J 툴에서 자바프로젝트를 만든다. 난 메이븐을 추가해 뒀다.메이븐 po.. 2023. 6. 6.
Mybatis에서 Oracle Procedure 사용 요즘 추세가 DB 프로시져를 사용하지 않고 자바에서 비즈니스 로직을 처리한다. 복잡한 테이블 관계가 얽혀 있는 업무라면 많은 제약이 따른다. 헤더와 라인 테이블이 있다. 헤더 테이블 1,000개의 row 데이터를 조회하면서, 실시간으로 어떤 집계 작업을 row 단위로 해서 금액을 만들어 보여줘야 한다. 라인테이블에 금액이 존재하는데 약간의 계산이 필요하다. 기준정보 테이블 3~4개 정도 뒤진다. 자바 메모리 자체에 데이터를 들고 있지 않는 이상. database와 통신을 여러 번 하면서 1,000번을 돌려야 하기에 이런 경우는 DB 프로시져나 펑션을 가미해서 만든 로직의 속도를 자바로 만든 프로그램이 이길 수가 없다. 어떤 작은 프로젝트에 참여하게 됐는데, ASIS 서비스에서는 DB프로시져로 되어 있는 .. 2023. 6. 4.
java8 Stream 02 map과 forEach 활용 java8 Stream 02 map과 forEach 활용 stream 방식으로 코딩을 하면 꽤 좋은 점이 코드가 눈에 띄게 줄어든다. 처음 자바8을 접했을 때는 익숙치 않아 거부감도 있었지만 일을 하면서 적용을 해보니 확실히 복잡한 프로그램을 만들 수록 소스 코드가 줄어든다. 누군가에에 도움을 주기 위한 포스팅은 아니고 내가 일하면서 자주 보려 한다. forEach 끝에 체이닝으로 collect를 넣었다가 한참 헤멨다. import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class Edu08_Map02 {.. 2023. 6. 1.
저소음 키보드 로지텍 MK295 살아오며 이렇게 조용한 키보드는 처음이다. 저소음 키보드 로지텍 MK295 특징 및 사양SilentTouch 기술키보드 각도 조절 가능액체 유입 대비 설계2.4GHz 무선(10미터)나노 USB 수신기Caps Lock 표시등전원 온/오프 스위치AAA 배터리 2개(알카라인 배터리) (이 부분은 특징이 아니라 약점일 거 같은데...) 아이와 교보문고 핫트랙스에 갔다. 아끼던 샤프를 잃어버렸다고 징징거리는 녀석의 생떼에 못 이겨 바람도 쐴 겸 저녁 식사 후, 집 근처 핫트랙스 방문. 핫트랙스 입구에 도착하자 아이는 필기구 코너로 향했고 난 프로그래머 답게 IT서적 코너에서 한참을 두리번거린 후, 어김없이 로지텍 제품이 전시되어 있는 코너에 눈을 잠시 빼앗겼다. 마침 로지텍 제품 세일 행사를 한다. 아주 가끔이지.. 2023. 5. 29.
자바 스트림 Java stream 01 Modern java stream 01 이제야 스트림을 제대로 해보자는 생각이 들어 책을 구입하고 차근차근 예제를 따라 해 보는 중이다. 다른 이들보다 재능이 적다는 사실을 잊고 무작정 spring webflux나 reactive, RxJava 공부를 했었는데, 기초가 중요하다는 사실을 다시 깨달았다. 모던 자바 인 액션을 도서관에서 빌려와서 몇 번 대충 보고 반납했었는데 곁에 두고 익힐고 활용할 수 있을 수준이 될 때까지의 실력 향상을 도모하고자 구입했다. 10년 만에 구입하는 프로그래밍 책. 오늘은 스트림 기본 공부 1. Dish.class 는 기본 vo객체. package chaprer02; import java.util.Arrays; import java.util.List; public class.. 2023. 5. 28.
반응형