본문 바로가기
728x90
반응형

전체보기418

[ 조은글 5203호 - 시간 ] 불평등한 사회 속에서 그나마 공정하게 주어지는 것이 있다면 시간입니다. 시간은 누구나에게 똑같이 흘러가며 멈출 수도 없는 불가항력적인 것이죠. 우리는 시간 속에 살고 있지만 정작 시간에 대해서는 꽤나 무감각한 편입니다. 익숙한 것에 대해 소중함을 모른다고 해야할까요..? 인생은 1초가 모여 1분이 되고, 1분이 모여 1시간이 되고, 1시간이 모여 하루가, 이런 하루가 모여 전체 인생을 이룹니다. 이런 시간을 어떻게 쓰느냐에 따라 어떤 삶을 살았는지 결정하게 됩니다. 가장 먼저 시간을 잘 활용하려면 시간에 대해 소중함을 느끼는 것이 먼저입니다. 당신은 지체할 수도 있지만 시간은 그러하지 않을 것입니다. 낭비한 시간에 대한 후회는 더 큰 시간 낭비입니다. 시간은 인간이 쓸 수 있는 가장 값진 것입니다. 시간.. 2021. 8. 4.
윈도우에서 포트 죽이기 윈도우 cmd 창에서 netstat -a -o 먼저 명령프롬포트창인 CMD를 열어 netstat -a -o 명령어를 입력합니다. 위 사진과 같이 프로토콜 / 로컬 주소 / 외부 주소 / 상태 / PID가 주르륵 나오는데요. 저희가 필요한건 로컬주소에 0.0.0.0: ← 이거 다음 숫자인 port번호와 PID입니다. 다시 한번 위에 사진을 가져와서 제가 필요한 8080포트를 확인해보면??? 저기 빨간색 상자로 표시해둔 부분이 8080 포트가 LISTENING으로 종료되지 않고 실행되고 있었네요. 이제 PID 번호를 확인한 다음 8080 포트의 프로세스를 종료시키겠습니다. 명령어 taskkill /f /pid PID번호 를 입력했더니 프로세스 종료가 성공적으로 이루어졌습니다. 그 후 톰캣을 실행했더니 동작도.. 2021. 8. 3.
[Querydsl] Case When 사용하기 CaseBuilder를 통해 CaseWhen 문법 시작 when: 조건문 then: when절이 true일 경우 실행 otherwise: when절이 false일 경우 실행 otherwise가 끝나면 결과 물에 대한 alias(as) 적용 일반적으로는 Entity의 필드명이 자동으로 as 적용됨 하지만 CaseBuilder를 통해 계산한 결과물은 필드명이 없음 alias 하지 않으면 결과물 필드가 어떤 필드로 가야할지 명시되지 않아 오류가 발생 public List selectAuthManageList(Map searchInfo) { String searchKeyword = searchInfo.get("searchKeyword"); List tnAuthorList = queryFactory .select.. 2021. 8. 3.
[PWA] 자바로 pwa push 알림 기능 개발하기(12) 이제 service 인터페이스를 상속받은 구현체를 작성하자 PwaPushServiceImpl.java 파일을 열자 package pwapush.service.impl; import java.io.IOException; import java.net.URLEncoder; import java.security.GeneralSecurityException; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutionException; import org.jose4j.base64url.Base64; import org.jose4j.json.internal.json_simple.JSONObject; import org.jose4.. 2021. 8. 3.
[PWA] 자바로 pwa push 알림 기능 개발하기(11) 3.2.5 Service interface 코딩하기 package pwapush.service; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutionException; import org.jose4j.lang.JoseException; import pwapush.model.UserSubscriInfo; public interface PwaPushService { /* push 알림 메세지 전송 부분을 선언한다. */ void sendMessage(Map messageMap, Li.. 2021. 8. 3.
[PWA] 자바로 pwa push 알림 기능 개발하기(10) 3.2.4 Controller 코딩하기 Controller파일 부터 작성하자. PwaPushController.java 열어서 아래와 같이 코딩한다. 주석으로 설명을 대신하겠다. @Controller //controller 파일이라고 정의해 주는 애노테이션이다. public class PwaPushController { //로깅을 찍기 위해서 선언해 준다. private Logger logger = LoggerFactory.getLogger(PwaPushController.class); //서비스가 기동시 생성된 객체를 주입하여 사용할수 있게 해준다. @Resource(name = "pwaPushService") private PwaPushService pwaPushService; //jpa 생성자를 주.. 2021. 8. 3.
[PWA] 자바로 pwa push 알림 기능 개발하기(9) 3.2.3 MVC 패턴 클래스 파일 만들기 Mvc 패턴에 맞게 Controller를 만들자. 만드는 순서는 Controller를 만들고, 서비스 인터페이스를 만들고, 서비스 인터페이스를 상속받은 구현체를 만들고, 데이터베이스와 통신을 할수 있게 JpaRepository 상속받은 인터페이스를 만들어서 데이터베이스에 push알림 구독정보를 저장하여 관리 할수 있게 만들것이다. 이번에는 패키지와 클래스 파일을 동시에 같이 만들어 보자. 위에서는 패키지 따로 파일 따로 만들어 보았는데 같이 만들어도 된다. pwapush 패키지명에 마우스 오른쪽 버튼을 클릭하여 New->Class를 선택 Package 입력부분에 pwapush만 입력이 되어 있을텐데 여기 뒤에다가 pwapush.controller을 입력하자. N.. 2021. 8. 3.
[PWA] 자바로 pwa push 알림 기능 개발하기(8) 모델 패키지를 만들자 pwapush위치에 가서 마우스 오른쪽 버튼을 클릭하여 New->Package 를 클릭하여 창이 뜨면 Name에 pwapush.model을 입력하고 Finish버튼을 클릭한다. 생성된 패키지 폴더에 가서 마우스 오른쪽 버튼을 클릭하여 New->Class 선택하여 UserSubscriInfo.java 로 Class 파일을 만든다. UserSubscriInfo.java 파일에 아래의 내용을 입력한다. package pwapush.model; import java.sql.Timestamp; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; impor.. 2021. 8. 3.
[PWA] 자바로 pwa push 알림 기능 개발하기(7) 3.2.2 모델 만들기 데이터 베이스 연동하여 데이터를 주고 받을수 있는 모델을 만들자 Entity라고 하는데 DB에 테이블이라고 보면 된다. 자바에서는 ORM (Object Relational Mapping) 이다. ORM에 대해서는 간단하게 개념만 알고 넘어가자. ORM이란? ORM은 Object Relational Mapping 즉, 객체-관계 매핑의 줄임말이다. 객체-관계 매핑을 풀어서 설명하자면 우리가 OOP(Object Oriented Programming)에서 쓰이는 객체라는 개념을 구현한 클래스와 RDB(Relational DataBase)에서 쓰이는 데이터인 테이블 자동으로 매핑(연결)하는 것을 의미한다. 그러나 클래스와 테이블은 서로가 기존부터 호환가능성을 두고 만들어진 것이 아니기 때.. 2021. 8. 3.
[PWA] 자바로 pwa push 알림 기능 개발하기(6) 3.2 자바 패키지 파일 생성 3.2.1 자바 환경설정 파일 만들기 src/main/java 밑에 pwapush에 가서 마우스 오른쪽 버튼을 클릭하여 Package 선택 Name에 pwapush.config 입력후 Finish 버튼을 클릭하여 패키지 를 생성한다. 생성된 패키지 에서 마우스 오른쪽 버튼을 클릭하여 New->Class 를 클릭하여 WebConfig.java 파일을 생성하자 WebConfig.java 파일은 환경설정 파일로 서버가 기동될때 최초로 메모리에 환경설정을 로딩하는 기능을 처리한다. WebMvcConfigure을 상속 받아서 json형식을 데이터를 사용하겠다고 설정하는 부분이다. 소스를 붙여 넣는다. package pwapush.config; import org.springframe.. 2021. 8. 3.
[PWA] 자바로 pwa push 알림 기능 개발하기(5) resource폴더에 pwa.properties 파일을 생성후에 publicKey = BNzzfdcBcThU27FcGve6F3GF6He2Fro82ZMuOLga9fukatLMlaKB6GdO-82loi6W4iGdPQZAp_4HLgST8z5of_E privateKey = yzZ8xvvhiM50HlTsDLCwiofkCyOypb-ZTkqdvpwyz7c publicKey와 privateKey를 입력한다. 이키는 pwa에서 push 알림을 보낼때 사용되는 공개키와 비밀키이다. 키는 이 프로젝트가 끝날때즘 새로운 키를 생성해야 한다. privateKey는 공개 되어서는 안되는 키이다. 제대로 따라 했다면 resource 폴더가 위와 같은 그림이 되어야 한다. build.gradle 파일을 열어서 push 기능을 만들기.. 2021. 8. 2.
[PWA] 자바로 pwa push 알림 기능 개발하기(4) resource폴더 밑에 logback-local.properties 파일을 하나 생성한다. 로그파일이 저장되는 경로를 설정한다. log.config.path=/logs/local /* 로그파일 저장경로 */ log.config.filename=local_log /* 로그파일 이름 */ resource 폴더에 logback-spring.xml 파일을 생성한다.logback-local.properties 파일에 위의 내용을 입력한다. 아래의 내용을 붙여 넣는다. ${LOG_PATTERN} ${LOG_PATH}/${LOG_FILE_NAME}.log ${LOG_PATTERN} ${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log 10MB 30 error ACCEPT DEN.. 2021. 8. 2.
[PWA] 자바로 pwa push 알림 기능 개발하기(3) src/main/resources 밑에 application.properties 파일을 yaml 형식으로 확장자를 변경한다. application.yaml로 yaml 파일은 입력할때 형식이 있다. 자릿수를 꼭 맞추어 주어야 에러가 없다.계층적으로 입력할때 2자리 스페이스를 입력후 입력을 해야 한다.yaml 형식이나 properties 에 입력하나 사용 방법은 동일한데 yaml 파일을 사용하면 중복 입력을 안해도 된다. 예를 들어 properties 파일에 다음과 같이 db접속 환경을 입력한다고 하면 이렇게 입력을 해야 한다. datasource.driver-class-name=org.h2.Driver datasource.url = jdbc:h2:mem:pwadb datasource.username = s.. 2021. 8. 2.
[PWA] 자바로 pwa push 알림 기능 개발하기(2) 3장 스프링부트 프로젝트 생성 3.1 push 알리미 기능 프로젝트 생성 spring부트 실행하여 File -> New -> Spring Starter Project 위와 같이 입력후 Next DB는 테스트 하기 좋은 H2 메모리 DB를 선택 Spring Web, Lombok, 웹페이지는 Thymeleaf선택 JPA를 사용할꺼라서 Spring Data JPA 선택 Spring Boot DevTools는 개발할때 소스에 변경 사항이 있을경우 자동 재기동을 시켜주는 편리한 기능이 있어서 선택 하여 준다. Finish를 눌러 준다. 2021. 8. 2.
[PWA] 자바로 pwa push 알림 기능 개발하기(1) 2장 개발환경 셋팅 2.1 개발툴 설치 자바1.8버전, 스프링부트 준비 2.1.1 스프링부트설치 https://spring.io/tools 사이트에 들어가서 해당 운영체제에 맞는 버전을 다운로드 받아서 압축을 풀어 줍니다. 압축을 푸실때 압축푸는 경로명이 길경우에는 압축풀다가 오류가 발생하면서 안 풀리는 경우가 가끔 있습니다. 이런경우에는 반디집을 설치하여 압축을 풀면 정상적으로 풀립니다. 2.1.2 자바 설치 https://www.oracle.com/kr/java/technologies/javase-downloads.html 사이트에 들어가서 자바1.8버전을 다운받습니다. 이 책의 예제는 자바 1.8기준으로 작성하였습니다. 다운 받아서 설치 해 주시기 바랍니다. 2021. 8. 2.
[ 조은글 5201호 - 봉사 활동 ] 요즈음은 초중고 학교에서 봉사활동을 많이 강조합니다. 그 봉사활동은 의무화되어 진학을 위해서 의무활동 시간만큼 이수를 해야하죠. 헌혈도 봉사활동 중 하나에 포함이 됩니다. 특히 우리나라는 수혈할 피가 없어 혈핵을 수입에 의존한다고 합니다. 헌혈을 하지 않아 수석졸업생이 불합격한 사례도 있습니다. 그 사례를 소개합니다. 의과대학에 떨어진 한국인 학생의 부모가 대학 당국자를 찾아갔다. 입학이 안 될 이유가 없었기 때문이다 그들은 자식을 위해 미국으로 이민을 왔고, 자녀들도 열심히 공부를 하였다 아들은 고등학교를 수석으로 졸업했다. 그런데, 그 아들이 명문 대학교의 의과대학 입학시험에 떨어졌다 아무리 생각해도 불합격이 이해가 되지 않았다. “제 자식이 무슨 잘못이라도 저질렀습니까? “아니오. 잘못한 일은 없습.. 2021. 8. 2.
[ 조은글 5200호 - 우리는 그렇게 혼자가 된다 ] 그대 인생의 마지막 20년을 함께 할 친구가 있나요? 대만에서 "미래의 노후"라는 주제로 웹 영화가 많은 네티즌의 공감을 샀다고 합니다. 영화속 줄거리는 산속에서 혼자 사는 노인에 대한 이야기를 담고 있는데, 네명의 자식들은 모두 장성해 교수가 되었거나 해외에 나가 장사를 하고 있고, 노인만 자식들이 모두 떠난 산골집에서 혼자 살아갑니다. 그러던 어느 날, 아들과 손자가 멀리서 찾아온다는 소식에 그는 정성껏 맛있는 음식들을 준비합니다. 하지만..., 곧이어 오지 못한다는 전화를 받게되고, 준비했던 음식들은 주인을 잃고 맙니다. 이 때, 창밖의 하늘마저 우중충해지고 노인은 친구를 불러 함께 식사 할 계획을 세웁니다. 하지만, 누렇게 색이 바랜 낡은 수첩을 한참 동안 뒤적거려도 함께 식사할 만한 친구를 찾지.. 2021. 8. 2.
java.security.NoSuchProviderException: no such provider: BC 에러 발생시 DEBUG 21-07-31 09:48:36[http-nio-8081-exec-1] [PwaPushController:190] - /push/keyGenerater.do 호출 java.security.NoSuchProviderException: no such provider: BC at sun.security.jca.GetInstance.getService(GetInstance.java:83) at sun.security.jca.GetInstance.getInstance(GetInstance.java:206) at java.security.KeyPairGenerator.getInstance(KeyPairGenerator.java:279) at nl.martijndwars.webpush.cli.handler.. 2021. 7. 31.
베큠 사용 postgresql 쓰레기 데이터 정리 간단 설명 베큠(Vacuum)은 PostgreSQL의 쓰레기 데이터를 정리하여 쾌적하게 청소하라는 명령인데, 쉽게 "디스크 조각 모음"이라고 생각하면된다. 베큠을 해야되는 이유 데이터는 물리적으로 디스크에 저장되고 읽어서 보여주는데, 데이터를 갱신(UPDATE) 혹은 삭제(DELETE) 시에 디스크에 있던 기존 정보를 갱신하거나 삭제하지 않습니다. 기존 정보는 변경되었다는 표시를 남기고 새롭게 디스크에 갱신(UPDATE)된 정보를 기록합니다. 삭제(DELETE) 했어도 디스크 용량은 줄어들지 않으며 갱신(UPDATE) 시에는 새로운 행이 추가되기 때문에 디스크 용량이 증가하게되는거죠. 이런 개념은 MVCC(다중 버전 동시성 제어) 구현에 따른 튜플(Tuple) 개념때문에 그렇습니다. 다시 쉽게 말하면 트.. 2021. 7. 28.
[PostgreSQL] da# erd 생성 초기 데이터 설정 순서 1. STD_AREA 테이블 : 표준분류 체계관리 등록 SELECT * FROM STD_AREA WHERE STD_AREA_ID = '499135df-e8a3-45e2-b311-5f388506cd34'; 2. STD_DOM_GRP : 도메인 그룹등록 SELECT * FROM STD_DOM_GRP sdg WHERE STD_AREA_ID = '499135df-e8a3-45e2-b311-5f388506cd34'; 3. STD_DOM : 도메인 등록 SELECT * FROM STD_DOM sd WHERE STD_AREA_ID = '499135df-e8a3-45e2-b311-5f388506cd34'; 4. STD_DIC 테이블 : 표준단어 등록 SELECT * FROM STD_DIC sd .. 2021. 7. 27.
728x90
반응형


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading