-
String to hex을 hex byte array개발/JAVA 2019. 3. 22. 11:12
소켓통신은 byte형태로 송신하고 수신한다. 따라서 보낼 데이터는 바이트 형태로 인코딩을 하게된다. 1 byte = 8 bit, 1 bit 는 0,1 2진수 인 것을 모두 잘 알 것이다. 따라서 1 byte는 8bit 이므로 2^8으로 이루어져 있고 10진수로는 0~255, 16진수로는 0~ff까지의 값을 가진다. 흔히 문자를 바이트로 16진수의 2자리 값으로 나타내며 Apple을 예를들면 String str = "Apple"; // 한 글자씩 헥사(Hex)로 출력 System.out.println(stringToHex(str)); // 출력 결과: 41 70 70 6C 65 // 접두사 붙여서 출력 System.out.println(stringToHex0x(str)); // 출력 결과: 0x41 0x7..
-
이클립스에서 기본 클래스 을(를) 찾거나 로드할 수 없습니다 가 뜰 때개발/JAVA 2019. 3. 21. 11:27
가끔 잘 되던 프로젝트를 실행시키다 보면오류: 기본 클래스 을(를) 찾거나 로드할 수 없습니다. 가 뜰 때가있다.클래스패스문제인 경우라 하여 환경변수에서 CLASSPATH 를 %JAVA_HOME%\lib; 로 되어있는것 뒤에다가 \나 . 등을 찍어 해결한다는 글들을 보았지만 다른 얘기였다. 이클립스의 경우 RUN/DEBURG 세팅에 되어있는 실행클래스에 대한 설정에 문제가 있는것으로 예상되어(이걸 어떻게 표현할 지 모르는... 무지한 지식이 부끄럽다) 이걸 삭제하고 다시 실행하면 된다.경로는 프로젝트 우클릭 -> properties -> Run/Debug Setting 중앙에 들어있는 java application에 설정되어있는것을 삭제하면 된다.
-
배열 복사 arraycopy개발/JAVA 2019. 3. 20. 17:27
tcp/ip 통신에서 서버로 데이터를 보내기 위해 바디 값에 헤더값을 추가, 그리고 헤더값에바디값에 대한 정보를 담아야 했다.때문에 바이트형식의 배열을 생성하고 기존의 값을 변환하여 옮겨야 했다.이 때 사용하는 것이 System.arraycopy 메소드다. 사용법은 arraycopy(Object src, int srcFrom, object mainSrc, int mainSrcFrom, length) 에서src = 옮길 배열srcFrom = 옮길배열의 시작위치mainSrc= 옮겨질 대상의 배열mainSrcFrom = 옮겨질 배열에서 덮힐 시작위치length = 옮겨지는 배열의 수이다. 따라서 헤더와 바디를 message 배열에 넣는다고 할 때 byte[] message = new byte[header.le..
-
Logback 설정 및 사용개발/Web 2019. 3. 20. 16:28
유지보수 하던 프로젝트에서 매일 로그 기록을 일정 개수가 유지되도록 변경하게 되었다. 기존 프로젝트는 log4j를 사용하고 있었고, dailyRollingFileAppender의 날짜 포멧으로 매일 로그를 남기고 있었다. 하지만 개수를 유지하는것은 RollingFileAppender의 maxbackupindex 설정 영역이었다. log4j 1.2버전을 찾아보고, 돌다돌아 커스터마이징 한 dailyRollingFileAppender를 프로젝트에 추가해 적용시켜보았지만 잘 되지않았다. 그리고 알게 된 것이 logback이다. logback은 log4j를 만든 개발자가 더 보완해서 만든거라는 설명글을 보았다.자세한 정보는 https://logback.qos.ch/documentation.html공식 사이트 메..
-
코딩 호러가 들려주는 진짜 소프트웨어 개발 이야기카테고리 없음 2019. 3. 20. 00:05
소프트웨어 개발자는 이 세계에 들어와보니 정말 너무나도 많다. 그리고 뛰어난 능력자들 역시 채일정도다. 여기서 나는 어떻게 자리잡을 지 아직 막막하기만 하다. 이 책의 저자는 그 유명한 스택오버플로우 제작자 중 한명인 제프 앳우드가 개발자에 대한 주변얘기들을 써 놓은 책이다. 나는 개발자가 뛰어난 개발자인지 아닌지 3~4년차에 알 수 있다는 글과 적성에 안 맞는다면 포기해야한다는 글에서 공포를 느꼈다. 들어왔지만 물러선다면 어떻게 해야할까, 휴가를 서버를 구축하는데 소비하고 취미생활처럼 즐기며 일하는 것에 나도 다 바칠 수 있을까. 걱정이 앞선다. 지금 현재의 미숙한 실력보다 그 미래에 공포를 느낀다. 그리고 나 역시 그런 모습을 상상해왔고 해보길 원하고 있다는 것을 안다. 프로젝트를 만들듯이 조금씩, ..
-
setInterval()과 setTimeout()개발/Web 2019. 3. 6. 01:17
대쉬보드 화면을 10초와 60초 간격으로 이벤트를 발생시켜 데이터를 갱신하도록 짜 둔 페이지에서 갱신이 되지 않는 문제가 발생하였다. 이유인 즉슨 며칠간 켜둔 페이지를 setInterval()을 이용하여 주기적 실행을 해뒀는데 점점 지연으로 느려지다 멈춘 경우다. 따라서 일반적인 주기는 setTimeout() 써야하나보다. 이 둘의 특징은 정해진 시간대로 실행한다는 것이고, 차이점으로는 인터벌은 정해진 시간으로 무한 반복, 타임아웃은 한 번만 실행이다. 따라서 타임아웃을 사용하여 무한 반복을 할 경우엔 재귀함수를 사용하여 함수안에서 한번 더 호출해야 한다. setinterval() 과 setTimeout() 사용법은 같다. var interval = setInerver(함수,1/1000초);var tim..
-
React.js 공부시작개발/React.js 2019. 3. 5. 00:30
react 강좌를 인프런에서 수강하기 시작했다. react의 특징은 라이브러리라는 점이다. 따라서 가볍다. 특징들로는 react는 가상돔을 사용한다. 리액트 설명 동영상을 보면 리액트는 모델을 기억하여 작업을 매칭시키는 도구인가?? 감은 잡히지만 구체적인 정보가 필요하여 검색을 해봐야겠다. react 의 장점 - 배우기 간단(라이브러리라서?) 뛰어난 garbage collection - >메모리 관리 성능이 뛰어나다 서버 & 클라이언트 렌더링 매우 간편한 UI수정, 재사용 페이스북이 밀어준다(페이스북에서 만든 라이브러리) 다른 프레임워크나 라이브러리와 혼용가능 react의 단점 - view only(보여지는곳만 작업) -> 데이터 모델링, ajax 는 안됨 IE8 이하와 화환이 힘들다