개발일지
7 posts
jQuery UI를 이용한, 탭 동적추가/삭제 기능 구현(div내에 jsp include 포함)

https://jqueryui.com/tabs/#manipulation jQuery UI에서 탭 추가/삭제 데모버전 코드를 기준으로 작성하였다. 여기서는, 탭의 이름과 탭에 들어갈 내용을 적어주면 해당 결과로 탭을 추가해주는 구조다. 그러나 실질적으로 내가 사용할 때에는 다이얼로그는 필요없고, 탭을 추가할때 div를 추가해주는지, 그 시점에 jsp를 동적으로 해당 div에 include 해주는지 가 관건이었다. 현재 테스트를 위해, include 할 jsp의 url은 정해놨지만 변수로 빼놓은 상황이다. 추후 상황에 맞게 응용 가능한 구조. Add tab을 누르면 탭이 추가가 된다. 탭을 클릭시 해당 탭으로 이동되는 형태이며, X버튼을 클릭시 해당 탭은 삭제가 된다. 즉, 동적으로 탭을 추가/삭제 할 수 있는 구조 단순히 태그만 추가하는 형태가 아니라, 해당 탭에 id를 부여하고 jsp를 include하여주는 형태다. 이러한 작업들이 동적으로 작동되도록 구현한 점이 핵심 …

Spring기반 웹서비스의 백그라운드 Agent 개발을 위한 기본 구조 정리노트

가장 먼저 context정보를 불러온다. DB에 접근하는 영역 DAO (Data Access Object) 여기에 정의된 내용들은 agent가 동작할 데이터 영역의 구조들이라 생각하면 된다. 이 데이터들을 이용하여 유의미하게 서비스를 제공 혹은 인사이트를 생성해내는 로직을 개발하는 것이 앞으로의 agent 개발 건들에 대해서 기본적으로 생각해야할 전제가 될 것으로 보인다. 따라서 어떤 기능을 동작할 것인지 명세하고 탑-다운 형태로 구현해나가는 것을 목표로 할 것이다. DB단과 통신하는 경우는 DAO를 이용하고, 질의문은 sql을 정의해놓은 xml에서 id값을 찾아서 데이터를 넘겨준다. 결과값은 보통 HashMap을 이용하여 불러오는 형태로 만든다. 해쉬는 형태인데 키 값을 통하여 찾고자 하는 레코드에 접근하는 형태다. 레코드는 여러개의 필드의 값을 담고있는 객체인데, 보통 이러한 객체를 Bean객체라 부른다. 통상적으로 agent가 작동할 때는, 파일…

Search Search | m.nearbyme.io 와의 사투, 해결일지

요즘들어 계속 나를 괴롭히고 있는 이상한 맬웨어다. 브라우저를 하이재킹해서 키워드를 가로채서 새로운 탭으로 m.nearbyme.io에 쿼리를 날려서 호출하는 방식이다. 검색엔진은 광고주의 부탁에 따라 상위노출 시켜줄 시 더 많은 돈을 받을 수 있는 것으로 알고있다. 확실한 것은 아니지만, 이 맬웨어는 자체적으로 검색키워드를 하이재킹해서 상위노출시키는 방식으로 광고주에게 돈을 받는 모양이다. 브라우저 하이재킹을 한다면, 단순히 브라우저 내의 키워드만 가져가지는 않을 것 같았다. 1차적으로 구글링을 통해 해당이슈를 해결할 수 있는 방법을 찾아보았다. 국내페이지에서는 이 이슈를 다루는 곳이 별로 없는 듯 하였다. 해외페이지에서는 이 문제를 상당히 다루기는 했는데, 다 똑같은 이야기였다. 요약하자면 프로그램 추가/제거 에서 이상한 프로그램을 삭제하라 안되면 우리 애드웨어 제거 프로그램을 사용하라(유료) 이런식의 백신 홍보글이었다. 우선은 수상한 프로그램을 발견해서 해당 프로그램을 삭…

JAVA 정규식 study

정규 표현식(正規表現式, 영어: regular expression, 간단히 regexp 또는 regex, rational expression) 또는 정규식(正規式)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 정규 표현식은 많은 텍스트 편집기와 프로그래밍 언어에서 문자열의 검색과 치환을 위해 지원하고 있으며, 특히 펄과 Tcl은 언어 자체에 강력한 정규 표현식을 구현하고 있다. 컴퓨터 과학의 정규 언어로부터 유래하였으나 구현체에 따라서 정규 언어보다 더 넓은 언어를 표현할 수 있는 경우도 있으며, 심지어 정규 표현식 자체의 문법도 여러 가지 존재하고 있다. 현재 많은 프로그래밍 언어, 텍스트 처리 프로그램, 고급 텍스트 편집기 등이 정규 표현식 기능을 제공한다. 일부는 펄, 자바스크립트, 루비, Tcl처럼 문법에 내장되어 있는 반면 닷넷 언어, 자바, 파이썬, POSIX C, C++ (C++11 이후)에서는 표준 라이브러리를 통해 제공한다. 그 밖의 …

API 패키지 설치 (작성중)

# INTRO CentOS 설치 (CentOS Linux release 7.4.1708) (API에 맞는 운영체제 버전을 설치해야 한다.) 보통 물리서버장치에 바로 설치하지만, 매뉴얼 작성을 위해 가상환경에서 진행 VMware Workstation 이용 가상 환경만 구성하고, iso파일을 이용하여 직접 설치한다. 여기까지 가상환경 조성 완료 암호까지 설정하고 대기, 설치 완료되면 usb제거 기본적인 설치가 끝나고 부팅이 되면 OS가 잘 설치되었는지, 하드웨어 스펙은 일치하는지 확인해준다. cat /etc/redhat-release 입력하면 os버전 확인 가능 # 전체적인 순서 자바설치 -> DB설치 -> 톰캣 설치 -> 인증서설치 -> 설정 -> 테스트 0. 외부 터미널에서 접근하기 위한 interface 정의 # cd /etc/sysconfig/network-scripts/ # ll 로 인터페이스명 확인 (ifcfg~~ 파일) …

파싱 AGENT 클래스 동작 구조분석

메인클래스 Parser \1. conf에서 properties에서 정보들을 가져옴 \2. xml파일을 이용해서 Spring Bean을 생성한다. 해당 bean은 context라는 객체로 담기게 됨. \3. 메인 클래스에서는 init()과 execute() 두 메소드가 동작하게된다. init()에서 읽어온 prop 순회하면서 핸들러 설정해주고 execute()에서 DAO를 받아서 처리를 하게된다. execute를 자세히 보면 스레드로 프로세싱을 하게되는데 Producer - Consumer 패턴 구조로 이루어져 있다. (보통, 데이터를 생성하는 스레드를 Producer 데이터를 처리하는 스레드를 Consumer로 구분) 해당 agent에서 Producer는 생성중인 로그, 생성된 로그, 에러로 빠진 로그 구분해서 정리해줌 ConsumerMgr이라는 단일클래스에서 여러개의 Consuemer 스레드들을 관리하는 형태로 구조화해서 Consumer는 멀티스레드 구조로 여러개의 파일을 …

컴퓨터 활용 lil tip

프론트엔드 자동화 테스트 : Cypress.io 2 .쉬프트 + 윈도우 + 방향키 : 창 모니터 이동 3 .다중모니터 마우스커서이동 : https://blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=windowexe&logNo=221501498360 윈도우 + (1~0) : 작업표시줄 아이콘 실행 이클립스 탭이동 : 컨트롤 + pgUP,pgDn 이클립스 탭분할 : 컨트롤 + 쉬프트 + { or _ 크롬 내부 검색창 바로가기 : / 크롬 뒤로가기 앞으로 가기 : 알트 + 방향키 ========================================================================= Tomcat 서버 이미 가동중일 때, 이클립스 서버와 비동기화 되있는 경우 프로세스를 강제로 종료해줘야 한다. 이 때 pid확인하는 법 (윈도우 기준) 명령 프롬프트에 다음 명령어 입력 톰캣에서 기 사용하고있…