반응형

전체 글 430

[KakaoTalkChatManager] 카카오톡 채팅 매니저

안녕하세요. 삽질하는 프로그래머 통통만두입니다. 오랜만에 글을 작성하는거 같네요. 이번에는 카카오톡 채팅 매니저 프로그램을 만들어보았습니다. 회사업무 때문에 톡방을 여러개 켜놓는데 채팅방을 정렬해서 깔끔하게 보고 싶었습니다. 처음에는 MDI Child 형식으로 폼을 만들어서 그 안에 카카오톡 채팅을 넣었는데, 새 메세지 팝업 클릭시 등 여러 가지 문제로 인해서 채팅방의 핸들만 받아와서 프로그램에서 처리하도록 했습니다. 이렇게 부모-자식 관계가 아니다보니 부족한점도 많지만 나름 쓸만합니다. ㅋㅋ 개선사항이나 문의사항은 marsland@hanmail.net 또는 카카오톡 marsland 로 연락주세요.

Project 2018.05.15

카카오 Code Festival

안녕하세요~ 오랜만입니다.이번에는 카카오 Code Festival 에 대해서 알아보도록 하겠습니다. 우연하게 카카오톡 PC버전의 하단에 카카오 Code Festival 에 대한 배너광고를 보게 되었고 호기심에 클릭을 해봤습니다. 카카오에서 준비한 대학원(생) 프로그래밍 경진대회더군요. 저도 대학교 다닐 때 교내 프로그래밍 경진대회에서 2인 1조로 참가하여 1등을 해 본 적이 있기에 더욱 호기심이 생겼습니다. 더욱이 모의테스트가 가능했기에 풀어보았습니다. 카카오 Code Festival 링크 위의 카카오 Code Festival 링크를 통해서 들어가시면 페이지 최하단 부분에 [모의테스트] 가 있습니다. 모의테스트 페이지에는 위와 같은 화면이 나옵니다. C++, C#, Java, JavaScript 등등 여..

Programming/Etc 2017.07.05

엑셀파일 업로드 후 List로 반환하기

앞서 포스트에서 jQuery를 사용해서 파일 업로드하는 글을 포스팅 했습니다.그 다음에 할 일이 엑셀 파일을 업로드 한 후에 안에 있는 내용을 DB에 넣는 작업을 진행했습니다. 물론 기존 프로젝트에도 엑셀 업로드한 후에 안에 있는 내용을 읽어와서 DB에 넣는 로직이 있긴 했지만 엑셀 형식에 따라서 매번 controller이나 내용도 달라져야 했기에 해당 작업이 필요할 때마다 컨트롤 + c, 컨트롤 + v 를 한 후에 입맛에 맛게끔 변형하는 과정이 필요했습니다. 그래서 깔끔하게 범용으로 쓸 수 있게 만들어보았습니다. 물론 더 좋은 것도 많이 있겠지만 이런 방법도 있구나 하는 정도로만 봐주시고 군더더기가 있다면 본인 업무에 맞게끔 수정해서 쓰시면 좋을 것 같습니다. JavaScriptvar formData ..

Programming/JSP 2017.04.04

jQuery 만으로 파일 업로드하기

안녕하세요 삽질하는 프로그래머 통통만두입니다. 이번에는 프로젝트를 진행하면서 파일 업로드를 구현을 하게 되었습니다.소스상으로 간단한 방법이 없을까 찾아봤는데 jQuery 를 통해서 정말 간단하게 해결할 수 있었습니다. source.jsp × 엑셀 업로드 확인 취소 script$("#btnExcelUpload").click(function() { if( isNull($("#excelFile").val()) ) { $("#excelFile").focus(); alert("파일을 선택하세요."); return; } var formData = new FormData(); formData.append("excelFile", $("#excelFile")[0].files[0]); $.ajax({ url: "${con..

Programming/JSP 2017.04.03

myBatis 에서 java 함수 사용하기

안녕하세요~ 날씨가 점점 풀리고 있는 요즘입니다. 아침 저녁으로 일교차가 심한데 다들 감기 조심하세요 ^^ myBatis 에서 java 함수를 사용할 수 있다는 사실! 알고 계셨나요? package com.mythsoft.common.util; import com.enrsoft.gn.core.entity.ItemListEntity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.UnsupportedEncodingException; import j..

Programming/JSP 2017.03.16

EXCEL 여러 컬럼 중복 값 검사

새로운 것을 알아간다는 것은 참 즐거운 것 같습니다. 이 번에는 흔히 아시는 MS사의 EXCEL에 대해서 포스팅해볼까 합니다.보통 한 셀에 대해서 중복값을 많이 찾으셨을텐데 저의 경우에는 다중셀에 대해서 중복값을 찾으려고 했습니다. 엑셀에 위와 같이 데이터를 입력해두고 중복값을 찾아보도록 하겠습니다. 오잉? 각 col 마다 중복값을 알려주는군요.그렇다면 꼼수를 사용해보도록 하겠습니다. 우선 데이터가 입력된 젤 오른쪽 빈 칸에다가 =a2&b2&c2&d2 요런식으로 수식을 걸어줍니다.그 후에 수식을 적용한 col 에 중복값 체크를 하시면 위와 같은 결과를 얻으실 수 있습니다. 도움이 되셨길 바라면서..

Etc 2017.01.20

구글 애널리틱스 자격증 합격! (GAIQ)

이번 회사에서 구글 애널리틱스 관련해서 업무가 있었습니다. 전체적인 구글 트래킹 코드를 심고 분석할 수 있게끔 하는 것이었는데 이 것을 위해서 1일 교육도 다녀왔고 했습니다. 처음 GAIQ 가 있다고 했을 때 만만한 것으로 생각했는데 여러번 시도 끝에 이렇게 합격을 하네요. 시험시간은 90분이 주어지며 총 70문제중 56문제를 맞춰야 구글 애널리틱스 인증을 받을 수 있습니다.시험에 합격하기 바로 직전이 55문제를 맞추고 불합격하여 너무나 아쉬웠는데 이번에는 정말 턱걸이로 합격을 했네요.시험 종료 후 몇 문제를 맞췄고 합격, 불합격 여부만 나와서 복기를 할 수도 없었습니다. 이런 면에서 어려운 점이 있었는데 동영상 자료와 구글링을 통해서 학습하고 시험을 보니 도움이 되었습니다. GAIQ 준비하시는 모든 분..

Etc 2016.12.16

임시테이블 생성 및 존재여부 확인 후 삭제

MySQL 에서 임시테이블을 생성하고, 임시테이블의 존재여부를 확인 후 삭제하는 방법을 포스팅 하도록 하겠습니다. /* 임시테이블 삭제 */ DROP TEMPORARY TABLE IF EXISTS tmp_tb_buyer_cohort_data_main; DROP TEMPORARY TABLE IF EXISTS tmp_tb_buyer_cohort_data_copy_1; DROP TEMPORARY TABLE IF EXISTS tmp_tb_buyer_cohort_data_copy_2; /* 임시테이블 생성 */ CREATE TEMPORARY TABLE tmp_tb_buyer_cohort_data_main ( code INT, code_name VARCHAR(50), part INT, value DECIMAL(30..

DB/MySQL 2016.12.16

[Spring Boot] MySql 연결 끊김 해결

안녕하세요. 삽질하는 프로그래머 통통만두입니다.Spring Boot + MyBatis + MySQL 로 프로젝트를 진행하고 있습니다. MySQL 에서는 기본적으로 8시간동안 아무런 query가 없으면 자동으로 연결을 끊습니다. 제가 개발한 웹서버도 평일에는 잘 돌다가 주말 지나고 월요일 아침에 접속해보면 항상 아래와 같은 에러가 발생하였습니다. 에러페이지는 아직 구현을 안했습니다 ^^; 그래서 이와 같은 문제를 해결하기 위해서 1시간 또는 주기적으로 DB 서버에 dump query 을 날리는 것으로 스케쥴러, 배치 등 생각을 해봤지만 배보다 배꼽이 더 크고 깔끔하지 않기 때문에 spring boot 의 설정값을 찾아보았습니다. 일단 구글링을 통해서 알아보고 적용해보니 아래와 같은 설정값을 적용하시면 해결..

[Spring Boot] Filter 적용

Spring Boot 에서 Filter 을 적용하여 처리해보도록 하겠습니다. Filter 의 우선순위는 Interceptor 보다 우선하고 있으며 보통 파라메타 암/복호화 또는 타 시스템과의 데이터 교환에서 사용되기도 합니다. 저의 경우에는 웹 사이트에 내부에서 파라메타를 암호화해서 서버에서 복호화하는 로직으로 처리하기 위해서 Filter 을 사용하였습니다. ChipherFilterConfig.java@Configuration public class ChipherFilterConfig { @Bean public FilterRegistrationBean getFilterRegistrationBean() { FilterRegistrationBean registrationBean = new FilterRegi..

[Spring Boot] jasypt 암호화 적용

Spring Boot 를 사용하면서 보안에 관련된 부분도 신경쓰지 않을 수 없습니다. 그 중에서도 특히 DB 접속정보에 대한 노출이 가장 큰 부분이 차지할 수 있을텐데요.이번에는 Spring Boot 에서 jasypt 를 사용하여 접속정보를 암호화하도록 해보겠습니다. pom.xml com.github.ulisesbocchio jasypt-spring-boot-starter 1.8 application.propertiesjasypt.encryptor.password=KEY Application.java@EnableEncryptableProperties Encrypt 최종 적용spring.datasource.username=ENC(D+VvgkMbSzhbefnemOrY8g==)

반응형