목록분류 전체보기 (70)
진이의 Developer Story
하드 정리하다보니 영상이 있어서 추억으로 블로그에 남겨봅니다.혼자하기엔 작업량이 방대해서 포기했었는데 아쉬움이 남네요. 에뮬레이터 만들면서 개발자 분들이 얼마나 고생하셨을지조금이나마 이해가 갑니다.
-- -------------------------------------------------------------------------------- -- Routine DDL -- Note: comments before and after the routine body will not be stored by the server -- -------------------------------------------------------------------------------- DELIMITER $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `GenJavaModel`(in pTableName VARCHAR(255) ) BEGIN DECLARE vClassName varc..
스프링 부트가 많이 쓰임에 따라, 내장된 톰캣을 많이 사용하고 있다. 기존에는 톰캣을 따로 다운받아서, server.xml 등을 수정하여 톰캣을 사용했지만, 스프링 부트에서 제공을 하는 내장 톰캣의 경우 application.yml 이나 properties를 통하여 설정하거나 java 코드로 설정(ajp 등)하여 사용한다. 그런데 외부 톰캣을 사용할 경우, Project > Build Automatically 체크 후 server.xml 에서 reloadable만 false로 해주면 간단하게 Hot swapping이 되어, 메소드를 추가, 제거, 기타 ORM을 사용하여 쿼리를 작성하는 부분외에는 재시작없이 수정된 코드를 바로 확인해볼 수 있었다. 스프링 부트는 이번이 써보는 것이 두 번째인데, 저번에는 ..
1. DB Browser for SQLite 를 다운받는다.2. 파일 > 데이터베이스 열기 > SVN DB (프로젝트 폴더내 .svn 폴더 밑 wc.db 파일) 선택3. SQL 실행 탭 선택 후 아래의 쿼리를 한번 씩 실행해준다. DELETE FROM WORK_QUEUE; DELETE FROM WC_LOCK; 질의가 성공적으로 실행되었습니다: DELETE FROM WORK_QUEUE(0ms, 1 행이 영향받았습니다 걸렸습니다.) 질의가 성공적으로 실행되었습니다: DELETE FROM WC_LOCK (0ms, 1 행이 영향받았습니다 걸렸습니다.) 위와 같이 "1 행이 영향받았습니다" 라고 뜨면 lock 이 해제된 상태이다. 4. 파일 > 변경사항 저장하기
포워드IP의 경우 제대로 걸러지지 않는 경우가 있다. 헤더에서 구분하여 IP값을 받아오자. public static String getClientIP() { HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest(); String ip = request.getHeader("X-FORWARDED-FOR"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.len..
저번에 만들어두었던 별풍선 수집기에 문제가 있음은 진작에 알고 있었다.잘못된 네티의 사용방법, 설계상의 문제로 하루에 한번은 재시작을 해주어야 했는데...이번에 다시 한번 새로 설계하여 제작해봤다. 한번도 사용해보지 않은 스프링 부트를 사용하며, 지금까지 스프링에 대한 이해가 얼마나 부족한지도 깨닫게 되더라.아무래도 웹어플리케이션이 아니다 보니, 스코프에 대한 이해가 부족하여 의존성 주입이 안되는다던지 등... 새롭게 공부를 한 느낌이 든다. 네티는 이번이 2번째 사용이다보니 저번보다 훨씬 수월하게 코딩이 되었다.아래는 스프링부트로 만들어본 새로운 버전의 수집기. 며칠돌려보고 에러가 없다면 좋을것 같지만...재부팅없이 며칠을 버텨줄지 모르겠다.
해결방법 1. XML에서 JobDetailBean을 만들때, jobDataAsMap 프로퍼티에서 Service 객체를 등록한다. context-scheduler.xml BatchJob.java public class BatchJob extends QuartzJobBean { /** * Logger */ private static final Logger LOGGER = LoggerFactory.getLogger(BatchJob.class); /** * BatchService */ private BatchService batchService; public void setBatchService(BatchService batchService) { this.batchService = batchService; } ..
문의는 이제 받지 않겠습니다.개발은 중지되었으며, 그렇기 때문에 배포할 수도 없습니다. 떠나기 전에 개발자분들에게 한가지 말씀드리자면,(처음 개발을 해보시려는 분들께 참고가 되었으면 합니다.) 이 글을 전부 읽을 시간이 없으신 분들은 빨간 키워드만 읽어주세요. * 언어는 여러분이 능숙한 언어로 사용하세요. (단 C가 빠릅니다)C#으로 개발하실 분들은 C로 DLL작성하셔서 인젝트하셔서 쓰시면 좋을 것 같네요. 1. ADB를 이용한 매크로는 작동하지 않습니다.2. 시중에 풀린 대부분의 매크로(1) 바탕화면 캡쳐 방식- 이거는 누구나 쉽게 할 수 있겠죠.(2) 비활성 캡쳐 방식- 이 방법의 99.9% 는 현재 그래픽 후킹을 통한 매크로입니다.- 방송 송출 오픈소스를 참고해보시면 됩니다.(3) 패킷 캡쳐 방식-..
2017. 10. 11 추가- 리니지M 매크로는 개발이 중지되었습니다.- 댓글로 문의주지 마세요! 새로 업데이트하게 되어 포스팅합니다. 수정내용 (1) 앱플레이어를 선택할 수 있습니다. (모모 및 녹스) (2) 로그인이 추가되었습니다. (단, 인증이 되지 않으면 사용불가) (3) 피격시 원하는 슬롯을 사용할 수 있습니다. (4) 자동업데이터가 적용되었습니다.
2017. 10. 11 추가- 리니지M 매크로는 개발이 중지되었습니다.- 댓글로 문의주지 마세요! 모모앱플레이어 전용 리니지m 매크로입니다. ADB를 이용하여 매크로를 조작합니다. HP/MP바 OCR로 인식하기가 가장 애매했네요... (특히나 MP바가 인식이 가끔 안되기도 합니다만...사용상 문제는 없을 것 같습니다) 비활성으로 여러개 켜놔도 정상 작동합니다. 슬롯1~8까지 지정할 수 있도록 개선할 예정입니다 ^^ 만드시다가 애매하신 부분 잇으시면 답변드리도록 할께요. 제가 만든 매크로는 화면인식 매크로입니다. (후킹방식이 아닌 ADB 캡처 후 인식방법입니다) 또한, 패킷을 분석한 방법도 아니고 메모리로 값을 읽어오는 방법도 아닙니다! 17.07.16 업데이트 (로그인, 슬롯선택 적용)