숫자섞기 알고리즘
0에서 9까지의 값을 저장하고 있는 배열 데이터를 섞는 알고리즘 초간단, 심플
- 프로그래밍
- · 2013. 10. 17.
logback을 이용하여 개발, 스테이징, 라이브 환경에 따른 로그 레벨을 분기하기 위해서 다음과 같이 조건문을 추가하였다. spring.profiles.active의 값은 java 실행 시 -Dspring.profiles.active="dev" 아규먼트를 추가하여 각 서버를 구분지었다. 헌데 웹 애플리케이션을 구동하면 로그 레벨이 각 환경에 맞게 적용이 안 된다. 문제는 janino library가 추가되어 있어야 했다. pom.xml 파일에 아래 라이브러리를 추가하여 문제 해결org.codehaus.janino janino 2.6.1
다음의 코드는 서버로 HTTP request를 날린 후 response로 JSON데이터를 받아 alert를 찍어주는 부분이다.$.ajax({type : "GET",url : "${pageContext.request.contextPath}/json.do",dataType : "json",data : "adsId=" + adsId + "&cmd=" + cmd,success : function(json) { if (json.isSuccess) { alert(json.msg); } alert(json.info.adsName); alert(json.info.imp); alert(json.info.click);}, error : function(e) { alert("처리중 장애가 발생하였습니다."); } });서버..
0에서 9까지의 값을 저장하고 있는 배열 데이터를 섞는 알고리즘 초간단, 심플
자바스크립트는 HTML 코드 inline이 좋을까 external이 좋을까?기존 방식은 공통으로 자바스크립트 함수에 대해서 external로 빼고, 화면단마다 사용하는 자바스크립트는 jsp 안에 포함시키는 방식으로 개발을 진행하였다.헌데 이렇게 하면 jsp 내부에 포함되어 있는 자바스크립트 테스트가 쉽지 않다.크롬이나 파이어폭스에서 breakpoint를 이용하여 디버깅을 지원하고 있지만 내가 테스트 하고자 하는 function을 찾는 것도 힘들다.결국 alert나 console.log를 이용하여 구식의 방법으로 디버깅을 하곤 하는데 과연 이런 방법이 좋은 것일까?당연히 좋지 않은 방법이다.alert 코드를 삭제하지 않은 상태로 라이브 서버에 배포가 될 수도 있고, 노가다가 심하다. 내 생각에는 jsp 코..
SiteMesh는 오픈 소스이고 페이지 레이아웃 프레임워크이다.이와 비슷한 프레임워크는 Tiles, Velocity 등이 있는데 SiteMesh는 처음 써봐서 샘플 코드를 만들어 봤다.이미지 출처 전체 소스 코드 : https://github.com/namkyu/sitemesh_test sitemesh를 위한 설정은 어렵지 않다.1. pom.xml에 라이브러리 추가2. web.xml에 com.opensymphony.sitemesh.webapp.SiteMeshFilter 필터 추가3. WEB-INF/decorators.xml 파일 생성 후 설정 추가 (페이지 레이아웃 설정 및 URL 패턴 정의)/jsp/*4. 페이지 레이아웃 구성HeaderNavigationFooter 설정을 마치고 sitemesh의 작동..
상용 서비스가 되고 있는 상태에서 고객의 요구 사항으로 인하여 자바 데몬 형식의 프로그램을 개발해야 할 때가 있다.이런 프로그램들은 대게 상용 리눅스 장비에 class 파일을 올린 후 java 명령어를 통해 프로그램을 실행하게 되는데 이것이 생각보다 어렵다.예전에도 class 파일을 실행하기 위해 몇 번 삽질을 했었는데 어김없이 또 삽질을 하게 되었다.사실 자바를 처음할 때 배우는 것들인데 이런 삽질을 하는 내 모습을 보면 쪽팔리기도 하다.그래서 이참에 확실하게 정리를 하고자 한다. 두 가지 방법에 대해서 설명을 할 것이다.첫 번째는 "패키지 선언되어 있는 java 파일 컴파일 후 실행하기"두 번째는 "외부 jar 파일을 classpath에 추가한 후 컴파일하고 실행하기" 첫 번째의 경우는 JDK에서 기..
나는 주로 스프링이 제공하는 테스트 컨텍스트 프레임워크 JUnit 확장 기능을 이용하여 테스트 코드를 작성한다. service 로직 -> DAO 로직 -> myBatis query 또는 DAO 로직 -> myBatis query 와 같이 두 가지 케이스의 테스트 코드를 많이 작성하게 되는데 이번에 service layer에 해당하는 클래스만 테스트 코드를 작성하는 방법에 대해서 알아보게 되었고, 토비의 스프링 3.1 스터디 기간에 학습했던 mockito를 사용해 보기로 했다. Mock 객체를 쉽게 제공하고 사용할 수 있는 여러 프레임워크가 있는데 그 중 mockito가 인기가 좋다고 한다. 사실 다른 Mock 프레임워크를 사용해 보지 못해 잘 알지는 못하지만 다른 분들의 경험적 지식과 구글 트렌드 조사를..
기존에 개발되어 있는 소스 코드를 보다 보니 implements java.io.Serializable과 같이 Serializable 인터페이스를 구현하는 VO(Value Object) 클래스들이 많이 보인다. 혹시 RMI(Remote Method Invocation) 통신이나 네트웍 통신을 할 때 직렬화를 사용하여 연동을 하나? 싶었지만 아니였다. 원인을 알고 싶었지만 개발된지 이미 5년이 넘은 시스템이고, 개발자는 5대째 계승되고 있는 시점이다. 결국 Serializable interface가 왜 구현되어 있는지는 모르겠지만 아마 습관적으로 붙이지 않았나 싶다. 이런 코드를 보니 나 조차도 Serializable에 대해 자세히 알고 있나라는 생각을 가지게 되었고, 한번쯤은 정리를 해봄으로써 확실히 알아..
test.co.kr 이라는 사이트에서 dev.co.kr 이라는 사이트에 있는 정보를 Ajax 기술을 이용하여 요청을 보낼 때 cross domain policy에 의해 브라우저가 요청을 막는다.즉, 도메인이 다르면 요청을 보낼 수 없다. 위와 같은 상황을 우회하여 해결할 수 있는 방법은 jquery에서 jsonp를 이용하는 것이다.한 가지 주의해야 할점은 jsonp는 HTTP GET 방식만 지원한다. jsp 파일 $(document).ready(function() { }); function getJsonTest1() { $.getJSON("http://jsonp.localhost:8081/jsonpTest?id=user&callback=?", function(data) { alert(data.id + "..
이번에 인턴 사원 멘토링을 맡게 되면서 교육을 진행하고 있는데 재귀함수에 대해서는 잘 이해를 못하는 것 같아 시퀀스 다이어그램을 그려보았다.재귀함수를 어떻게 그리면 좋을까 생각한 끝에 아래와 같은 결과물이 나왔는데 인턴 사원이 잘 이해할 수 있을랑가 모르겠다. [시퀀스 다이어그램]
369 게임 알고리즘을 작성해 보았다. 문제는 우리가 아는 게임과 동일하다. 3 이라는 숫자를 부르면 박수 한 번.6 이라는 숫자를 부르면 박수 한 번.9 이라는 숫자를 부르면 박수 한 번.33 이라는 숫자를 부르면 박수 두 번.369 라는 숫자를 부르면 박수 세 번. 위의 문제에 대한 알고리즘은 무엇일까? 주어진 숫자의 자릿수마다 3, 6, 9라는 값이 포함되어 있는지 확인 후 count를 하면 된다. String의 indexOf를 이용하여 값의 포함 여부를 확인하려고 했지만 너무 쉬운 것 같아 다르게 문제를 풀어보았다.
자바의 접근 제어자는 다른 클래스로부터 정보와 데이터의 접근을 제어한다.public : 어떤 클래스에서도 접근이 가능private : 외부의 어떤 클래스에서도 접근이 불가능protected : 같은 패키지 및 상속 받은 클래스에서 접근 가능.default : 같은 패키지에 있는 클래스에서만 접근 가능 여기서 protected, default 접근제어자를 사용할 때 주의해야 할 점은 꼭! 같은 패키지여야만 한다는 것이다.예를 들어 A 패키지에 존재하는 Board 클래스에 default 접근제어자로 선언되어 있는 add 메소드가 존재하고, A 패키지 하위에 B 패키지가 존재한다면. B 패키지 안에 있는 NoticeBoard 클래스에서 A 패키지에 있는 Board 클래스의 add 메소드에 접근할 수 없다. 즉..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.