본문 바로가기
반응형

전체 글254

자바 스트림 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.
자바8 날짜함수 관련. //날짜를 지정해보기 DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyyMMdd"); LocalDate localDate = LocalDate.of(2023, 05, 31); //localDate.plusDays(1); 이렇게는 안됨... System.out.println(localDate.plusDays(2).format(format)); 데이터베이스에 회사 캘린더 테이블이 존재하는데 그 테이블에 특정일자가 휴일인지 아닌지를 체크하는 로직이 필요했다. 휴일이라면 +1일을 해서 다음 일자가 또 휴일인지 아닌지를 판단하고 휴일이 아니라면 그 년월일을 리턴해야 한다. 내가 선택한 방법은 간단하다. 처음 던진 일자를 시작으로 10일 치 미래 일자와 휴무.. 2023. 5. 26.
로지텍 마우스 G502X 로지텍 마우스 G502X 2년 가까이 만족스럽게 사용하던 G102 유선 마우스가 어느 순간부터 더블클릭 오류가 발생하기 시작했다. 내게 이런 시련이 오다니... 게임을 끊은 지 언 10년도 넘었고 이클립스나 오피스용으로 사용하던 나의 최애 마우스 로지텍 G102... 병행수입으로 구입해서 나름 아끼며 사용했는데... 알아보니 마우스 스위치 부품을 고쳐야 하는데 정품으로 구입한 사람들은 2년이 지나지 않았다면 수리해 주는 듯하다. 로지텍 무선 마우스를 한번 사용해보기는 했는데 G304였던가? 유선보다는 확실히 뭔가 감도가 떨어지는 느낌이 들어 서브로 사용하다가 실수로 땅에 떨어트려 안타깝게도 1년을 사용 못하고 버린 기억이 있다. 그 제품도 병행수입이었는데 개인적으로 너무 비싸다는 생각이 든다. MX Ma.. 2023. 5. 16.
스프링에서 oracle declare 문 사용해보기 스프링에서 oracle declare 문 사용해 보기 절차지향 언어인 PL/SQL 과 객체지향 언어인 JAVA 스프링 프레임워크가 일반화되면서 많은 프로젝트에서 DB 프로시져나 DB Function 사용을 자제하고 자바서비스 부분으로 비즈니스 또는 복잡한 계산 프로그래밍을 넣는 방식으로 바뀌고 있다. 추세가 그렇게 변하는 이유는 꽤 많다. DataBase는 비싸고 웹서비스 쪽은 가격이 그에 비해 저렴하기도 하며, 비즈니스 로직을 데이터베이스에 되도록 의존적이지 않게 만들게 되면 스케일업이나 확장 및 이관도 용이한 면이 존재한다. 또한 개발자들이 객체지향과 데이터베이스의 절차지향 프로그래밍 방법으로 인해, 프로그래밍 패러다임이 엇갈려 많은 고뇌를 할 수밖에 없던 상황을 벗어날 수 있게 도와주는 JPA도 일.. 2023. 5. 14.
웹스퀘어 그리드 컨트롤 웹스퀘어 그리드 컨트롤이번 포스팅은 웹스퀘어 Grid 컨트롤 기능을 구현 및 알아본다. 자바스크립트 프레임워크나 라이브러리들은 대부분 그리드(grid)를 자체적으로 구현해 놓은 경우가 대다수다. 만든 이들이 다를 뿐 개념은 거의 비슷하다고 할 수 있다. 1. 공통점으로는 서버에서 가져온 데이터를 갖고 있는 객체가 있다. 2. 그리드는 html 객체다. Grid 객체가 존재한다. 3. 1과 2가 바인딩 또는 매핑 된다. 결국 서버에서 가져온 데이터 객체 + Html로 구현한 그리드 객체 두 개가 서로 매핑되어 상화보완 작용을 한다고 판단하면 된다. 이 원리를 머릿속에 이해하고 있다면 그리 어렵지 않게 제공된 API를 참고해서 일반적으로 많이 사용하는 기능을 충분히 구현할 수 있다. 이번에 구현해 볼 기능은.. 2023. 5. 14.
나이키 에어맥스 95 개봉기 나이키 에어맥스 95 개봉기 나이키 에어맥스 95는 이름 그대로 1995년에 출시 됐다. 필자(슬기)씨가 고등학생 시절 이었으니 어느덧 20년도 훌쩍 지난 예전이다. 95년 출시된 디자인 그대로 지금도 출시를 하다니 참 이 현상을 어찌 설명할 수 있을까? 고등학생시절 모든 남학생들이 나이키를 신을 수는 당연히 없었다. 각자의 아픈 사정이 있었으니... 나 또한 신어보지 못하고 누군가 신은 모습을 보면 참 부러웠다. 20여년이 지난 2023년 5월 나이키 공식홈페이지 이벤트 멤버스데이가 할인 기간을 이용해서 드디어 구입했다. 안타까운 것은 올흰 또는 올검정이 아닌 약간은 인기가 없는 색조합이라 아쉽기는 했지만 40%의 할인이라 가격은 나름 만족한다. 역대 나이키 에어맥스 시리즈 중 두번째로 인기가 많은 제.. 2023. 5. 10.
웹스퀘어 그리드 다이나믹콤보 SelectBox 적용해보기 웹스퀘어 그리드 다이나믹콤보 SelectBox 적용해 보기 Html Input type이 selectBox 일 경우, 간단한 프로그램일 경우는 하드코딩을 하지만, 프로젝트에서는 가능한 서버에서 code와 code_name을 읽어와서 세팅을 한다. 웹스퀘어 교육에서는 이런 거 안 알려준다. 아주 기본적인 것만 알려줄 뿐이다. 아이템 더블클릭해서 세팅하는 방법정도. 웹스퀘어 만든 회사에서 제공한 com 라이브러리에 공통코드를 다이내믹하게 가져오는 함수가 있기는 하지만, API를 통해서 구현해보려 한다. 1. 화면에 오픈될 때, 서버에서 셀렉트박스에 바인할 데이터를 통신해 온다. scwin.onpageload = function() { com.sbm.execute(sbm_dept); }; 서버 측 코드는 예제.. 2023. 5. 7.
웹스퀘어 팝업 기능 구현 websquare5 웹스퀘어 팝업 기능 구현 websquare5 이번 포스팅에서는 웹스퀘어 프레임워크에서 팝업 기능을 구현해 본다. 웹스퀘어 만든 회사에서 제공하는 com 라이브러리를 이용하면 API 예제보다는 조금 더 쉽게 구현이 가능하다. 자바스크립과 html으로 팝업을 호출하는 기능을 구현한 경험이 있다면 난이도가 그리 어렵지는 않다. 구현할 기능 1. 메인화면과 팝업 화면이 있다. 메인화면에서 텍스트 박스에서 부서명을 입력하고 팝업 버튼을 클릭하면 팝업 화면이 뜬다. 2. 팝업 화면에서는 메인화면에서 전달한 부서명 파라미터를 받아 자동으로 텍스트 박스 검색조건에 바인딩이 되고 조회 버튼을 누르면 그리드에 부서정보가 조회된다. 3. 그리드에서 원하는 부서를 더블 클릭하면 팝업이 닫히고 메인화면으로 돌아온다. 이때 팝업.. 2023. 5. 6.
웹스퀘어 그리드 부모 자식 1:N 조회 구성 웹스퀘어 그리드 부모 자식 1:N 조회 구성 부서정보가 조회되고 해당 부서에 마우스를 클릭하면 하단 사원정보 그리드에 해당 부서의 속한 사원리스트가 나오는 화면을 구성해 본다. 두 가지 방법이 존재한다. 1. 부서정보의 그리드를 클릭할 때마다 서버와 통신을 해서 사원정보를 조회하는 방법 2. 최초에 조회를 할 때, 부서정보 전체와 사원정보 전체를 모두 서버로부터 갖고 와서 사원정보를 필터 형태로 그리드에서 나타내게 하는 방법. 두 가지 방법대로 장단점이 존재하는데. 2번 방법의 경우 데이터가 많다면 문제가 된다. 데이터가 많다면 초기 로딩이 문제가 될 텐데 막상 로딩 후에는 빠르게 필터링이 된다. 1번의 경우 단점은 역시 서버와 통신이 너무 잦다는 것. 하지만 최신 정보를 가져올 수 있다. 처음에는 빠르.. 2023. 5. 5.
반응형