분류 전체보기 66

스프링 부트(Spring boot) + 그레들(Gradle) 개발 환경설정

오늘은 스프링부트와 그레들을 이용하는 개발환경을 설정하는 글을 정리하려고 한다. 먼저 환경은 스프링 사이트에서 다운받을 수 있는 Spring Tools를 이용해서 설정할 것이다. (이클립스를 이용해도 상관없음) 먼저 스프링 사이트에 접속해서 스프링 툴 4를 OS에 맞는 것을 설치해준다. (나의 경우 window) Spring Tools 4 is the next generation of Spring tooling Largely rebuilt from scratch, Spring Tools 4 provides world-class support for developing Spring-based enterprise applications, whether you prefer Eclipse, Visual Stud..

SPRING FRAMEWORK 2020.07.06

slcak을 대체할 협업 툴 mattermost 설치해보기(docker이용)

현재 회사에서는 slack을 사용하고 있었는데, slack의 유료화 이슈 떄문에 대체할만한 프로그램을 찾고있었는데, 마침 슬랙과 비슷한 UI를 가지고 있으면서 데이터는 서버에 쌓이게 되는 mattermost라는 프로그램을 찾게 되었다. 바로 상부에 제안을 드렸더니 설치해서 도입해봐도 좋다는 답변이 나와서 회사 개발서버에 mattermost를 설치해보았다. 처음에는 docker없이 설치해보려고 했으나, 너무 복잡해서 먼저 docker를 설치했다. docker설치는 매우 쉽다. 회사 개발서버는 centos 7이고 우분투의 경우는 동일하게 진행해도 무방하다. 사실 mattermost 가이드문서만 봐도 설치할 수 있다. 그래서 가이드 문서를 보고 진행하실분들은 아래 링크에서 보고 따라하시면 되겠다. (ubunt..

LINUX 2020.07.01

Rest API 비동기 시점 제어 (async, await) 및 value return

오늘은 블로그 비교적 최근에 추가된 비동기 패턴제어인 async과 await에 대해서 정리하려고 한다. 들어가기 앞서 async와 await은 최신 브라우저에서만 지원하기 떄문에 이점은 고려해서 사용해야 할 것 같다. (익스플로러를 크로스브라우징 대상에 포함한다면 어쩔수없이 콜백함수를 써야하지만..) 먼저 나는 async과 await을 사용한 상황은 금액에 대한 계산이 필요했는데, 금액을 가져오는 API가 여러 개였기 떄문에 정확한 금액 계산을 위해 데이터들이 한번에 들어 와야하는 상황이였다. 따라서 전통적인 콜백함수를 사용하기보단 async&await을 써보았다. (사내에서 개발하는 프로그램은 크롬, 엣지만 지원하고 있다.) 먼저 나는 document문서에서 설명해주는 것과 매우 흡사하게 작성했고, a..

JAVASCRIPT 2020.06.26

HttpResponse와 Unirest를 이용한 외부 데이터 요청

최근 개발하면서 외부 API를 이용해서 데이터를 요청해야할 일이 생기게 되어 HttpResponse와 Unirest를 사용해서 개발을 해보았는데, 오늘은 그 내용을 정리해보려고 한다. 일단, 회사에서 개발한 내용이였고, 기본적인 maven에 dependency설정은 잡혀있는 상태로 개발을 했는데, Spring으로 개발을 하고 maven을 이용해서 프로젝트 관리를 하고있다면 pom.xml에 다음 내용들을 추가해주면 된다. com.mashape.unirest unirest-java 1.4.9 org.apache.httpcomponents httpasyncclient 4.1.3 org.apache.httpcomponents httpmime 4.5.8 org.apache.httpcomponents httpcor..

JAVA 2020.06.17

교원구몬 학습지 영어 성인반 후기

오늘은 3개월 전 부터 자기개발겸으로 시작해서 지금까지도 하고있는 학습지 "구몬"에 대한 내 주관적인 평을 포스팅 하고 3개월동안 배운 것들에 대해서 간단하게 정리하고자 한다. 구몬을 학습하게 된 계기 ? 평소에 개발을 하면서 내 영어실력이 미천하다 못해 어디다 말하기도 창피할 정도라는 것을 느끼고 있었다. 그래서 영어공부를 해야 할 필요성은 항상 느끼고 있었는데, 어디서부터 어떻게 시작을 해야할지 고민하고 있었는데, 마침 웹서핑을 하다가 아래와 같은 짤을 보게 되었다. 이 짤방을 보고 구몬도 성인반이 존재한다는 것을 알게되었고, 호기심에 일단 상담을 신청했다. 인터넷을 통해 상담신청을 해놓으면 며칠 후 담당지역 책임자분이 연락을 주시고 학습지 상담 약속을 잡게 되었다. 그리고 대망의 상담일.. 카페에서..

OTHERS 2020.06.15

JAVA 문자열 자르기 2 (substring 사용법)

문자열을 잘라서 사용하는 방법에는 여러가지가 있지만, 그 중에서 접근성이 높은건 Split이나 substring이 아닐까 싶다. 저번글에서는 split을 정리했으니까, 오늘은 substring을 정리해보고자 한다. 일단 API문서에는 substirng이 이렇게 정리되어있다. 대충 String을 받아서 String을 리턴한다고 설명하는 것 같다. 글로 보는것보다는 코드로 보는게 빠를 것 같아서 간단한 예제 소스를 준비했다. 예제소스는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 public void subStr() { String time = "2020-05-01 23:59:59"; //substring의 첫 번째 인자는 시작점, 두 번쨰 인자는 종점(마지막) 입니다. String result..

JAVA 2020.06.02

갤럭시탭A 2019 with S pen 사용기(Feat. 트레딧 S펜 + 라미 S펜)

최근들어서 영어공부를 하다보니, 공책에 필기를 하는일이 잦아졌는데, IT인으로써 내가 공책에 쓴 내용들을 좀 더 효율적으로 관리할 수 있는 방법이 무엇일까 고민하던 찰나에 태블릿 PC를 이용해보면 어떨까 라는 생각이 들었다. 구매를 결심한 뒤 두 번쨰로 생긴 고민은 어떤 모델을 살것인가 였다. 구매당시 2020년 4월에 갤럭시탭 S6 라이트 버전이 출시되었으나, 10인치 모델이기도하고, 기기 내부에 펜 수납공간이 없어서 제외했다. 또 몇 년전 태블릿을 구매하였다가 방치시켜둔 경험이 있어서 일단 저렴한 모델을 사용해보고 좋은 모델을 구매하자는 생각도 있었다. 결심이 서자마자 바로 구매했다. 케이스, 종이질감필름, 트레딧 S펜까지 구매했고 금액은 약 32만원 가량 쓴 것 같다. 사전예약 떄는 라미펜을 줬다고..

OTHERS 2020.05.27

[Jquery] html 태그 중 selectBox event 필터링 하기

신규 개발 화면의 경우 Vue.js를 이용해 개발하기 떄문에 Jquery를 쓸일이 없지만, 기존에 개발되어 있는 화면의 경우 Jquery로 작성되어 있기때문에 작은규모의 수정사항이 생기면 Jquery로 수정을 하고있다. 개발을 하던 중 input태그 중에서 타입이 selectBox인 경우 액션을 취하고 싶은데, 이벤트가 발생했을 때 이벤트를 컨트롤하는 방법을 정리한 글이 없는 것 같아서 정리한다. Q. 여러개의 div안에 selectBox와 inputBox가 있고, 그 중에서 selectBox가 change이벤트가 발생했을 때 action을 취하고 싶다. html코드는 대충 다음과 같다고 했을 때 1 2 1 2 1 2 이 3개의 div 공간 중 selectBox에서 이벤트가 발생한 경우를 찾고 싶었던 것..

JAVASCRIPT 2020.05.13

[톰캣 포트번호 오류] Netstat명령어로 HTTP 포트 종료하기

웹 개발을 하다보면 서버를 종료 / 시작할일이 많은데, (핫스왑 기능을 사용중이지 않을 때) 가끔 해당포트(보통 8080)가 사용중이라는 오류메세지와 함께 서버가 시작되지않을 때가 있다. 예전에는 매번 명령어를 검색해서 8080포트를 종료해줬었는데, 최근들어서는 명령어를 외우게 되어서 행여나 까먹게 될까봐 따로 정리해놓으려고 한다. 먼저 네트워크 목록을 표시하는 명령어는 커맨드창을 시작하고 (윈도우즈키 + R를 누른 후 cmd를 검색) 커맨드창에 netstat -a -o를 검색하면 다음과 같은 결과화면이 나온다. (-a 는 모든연결 포트를 표시, -o는 PID(프로세스 아이디)를 표시하라는 명령어다.) 명령어를 실행하면 다음과 같은 화면을 볼 수 있다. 여기서 충돌메세지에 표시되는 포트번호를 찾아서.....

NETWORK 2020.05.08

JPA annotation @DynamicUpdate?

오늘은 테이블에 대한 Entity를 만들 떄 항상 선언해 주었던 @DynamicUpdate에 대해서 정리해본다. 기본적으로 @DynamicUpdate는 Spring JPA에서 제공하는 기능이다. (JPA, Hibernate, Spring JPA가 같은 의미는 아님) 개발을 하면서 @DynamicUpdate 어노테이션이 무슨역할을 하는지도 모른채 대부분의 Entity에 선언해줬었는데, 최근들어 왜 선언해야하는지 궁금증이 생겨서 조금 조사해봤다, 간단하게 정리하면 다음과 같다. JPA는 서버가 실행될 때 CURD에 관한 SQL문을 캐싱해놓는데, 여기서 UPDATE문에 UPDATE 대상이 모든 열로 선언되어 있다는 거다, 컬럼(필드)가 20개라면 20개 컬럼에 대한 업데이트문이 선언되어 있는 것이다. (upd..

SPRING FRAMEWORK 2020.05.07