home (268) 썸네일형 리스트형 centos maven install 리눅스에서 소스 코드를 갑자기 수정해서 빌드해야 되는 경우 STS 같은 IDE가 설치되어 있지 않다면 Maven을 설치해서 빌드하여 해결하는 방법이 있습니다. 리눅스에 설치할 Maven 버전을 STS와 맞추기 위해 버전을 확인합니다. Window - Preferences - Maven - Installations에서 Maven 버전을 확인합니다. 아파치 Maven 버전별 다운로드 페이지에 접속해서 다운받을 버전을 선택합니다. 저는 STS에 있는 3.6.3 버전을 선택했습니다. wget 명령어를 사용해서 Maven tar.gz 파일을 다운받습니다. 다운받은 tar.gz 파일 압축 해제합니다. 압축이 제대로 풀렸는지 확인합니다. /usr 디렉토리는 시스템 운영에 필요한 응용프로그램들이 있기 때문에 압축이 풀.. 다단계 칫솔 판매 프로그래머스에서 다단계 칫솔 판매 문제를 풀었습니다. https://school.programmers.co.kr/learn/courses/30/lessons/77486 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 설명은 위의 링크에서 확인하시면 됩니다. 판매원 정보가 있는 enroll을 key는 "판매원 이름", value는 "판매원 이름 인덱스"로 구성된 Map으로 변환합니다. Map을 사용하는 이유는 enroll 배열에 있는 사용자 입력 순서대로 각 사용자의 이익금을 입력하기 위해서입니다. (seller와 amount 배열이 enroll.. 파일명 정렬 프로그래머스에서 파일명 정렬 문제 풀었습니다. https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 설명은 위의 링크에서 확인하시면 됩니다. 문제는 파일명을 정렬할 때 먼저 문자를 기준으로 정렬하고 문자가 같으면 뒤의 숫자를 기준으로 정렬하는 것입니다. 그래서 각 파일명을 문자와 숫자를 파싱합니다.(13~48라인) 문자를 기준으로 정렬합니다.(50~55라인) 숫자를 기준으로 정렬합니다.(57~64라인) 나머지 소스 코드는 천천히 읽어보시.. hashCode equals 자바에서 hashCode는 객체를 식별하는 정수로 두 객체의 hashCode 값이 같으면 동일한 객체로 판단됩니다. 위의 TmpObj 클래스를 보게 되면 num이라는 필드를 통해서 hashCode와 equal 메소드를 재정의한 것을 확인할 수 있습니다. 그리고 TmpObj 클래스의 객체 obj1과 obj2를 비교한 것을 보게 되면 두 객체의 주소값이 다르더라도 동일한 객체로 판단하는 것을 확인할 수 있습니다. 또한 num 필드만 같으면 str 필드는 관계없이 동일한 객체로 판단되는 것도 확인할 수 있습니다. 조금 더 정확하게 판단하고 싶다면 Set을 사용해서 확인하는 방법도 있습니다. 객체 비교하는 코드 작성할 때 사용하면 유용할 것 같습니다. tomcat appBase 수정 일반적으로 tomcat에 war파일을 올릴 때 "tomcat/webapps/" 디렉토리 밑에 "ROOT.war"을 올립니다. 그런데 "tomcat/webapps/" 디렉토리 말고 다른 디렉토리로 설정해야 경우 appBase를 수정해야 합니다. (나스를 사용하는 경우) appBase는 tomcat이 배포하는 웹 어플리케이션 루트 디렉토리 위치를 가리킵니다. "tomcat/conf/server.xml" 파일의 Host 태그 속성의 appBase를 수정하면 됩니다. 이렇게 수정하면 tomcat 내부의 webapps 디렉토리가 아닌 다른 디렉토리의 war 파일을 찾아서 배포합니다. 추가로 Host 태그 안에 추가하면 context path와 docBase도 수정할 수 있습니다. context path는 톰캣 위.. Java Reflection 자바에 Reflection이라는 API를 지원하는데 인스턴스의 구체적인 클래스 타입을 알지 못해도 해당 인스턴스 클래스에 접근할 수 있게 하는 API입니다. 예제 코드를 보면 TmpObj 클래스를 생성한 다음 Object 클래스로 받고 getNum 메소드를 호출합니다.(9~12라인) 메소드에 파라미터를 전달해야 하는 경우 getMethod에 파라미터 타입을 입력하고 호출합니다.(14~16라인) 파라미터가 2개 이상이면 getMethod에 파라미터 타입을 추가하면 됩니다. 예시) getMethod(int.class, String.class, Double.class) getField를 통해서도 필드에 접근할 수 있습니다.(18~20라인) 대신에 접근제한자가 public에 한해서만 가능합니다. Spring D.. Spring Boot WebSocket 웹 소켓은 웹 브라우저와 서버 사이에 양방향으로 데이터를 전송해 주는 통신 기술입니다. 스프링 부트에서 웹 소켓 연계 기능 추가하는 것은 어렵지 않습니다. pom.xml에 spring-websocket dependency를 추가합니다. WebSocketHandler는 스프링에서 웹 소켓 통신을 담당하는 핸들러입니다. 텍스트 데이터를 전달하는 TextWebSocketHandler를 상속하여 WebSocketHandler를 구현했습니다. 클라이언트가 웹 소켓에 접속하면 로그를 남깁니다.(16~19라인) 클라이언트가 보낸 메시지에 "reply-"를 추가하여 다시 전달합니다.(21~33라인) 클라이언트가 웹 소켓 접속을 끊으면 로그를 남깁니다.(35~38라인) 웹 소켓 기능을 활성화하기 위해 WebSocketC.. Javascript FileReader csv 파일이나 txt 파일을 서버에 업로드하는 경우 각 파일에 맞는 maven 라이브러리가 필요합니다. 라이브러리를 추가해서 진행하는 것이 어렵지 않으나 클라이언트에서 직접 데이터를 보내줄 수 있습니다. 자바스크립트 FileReader 클래스를 사용하면 클라이언트가 직접 데이터를 읽을 수 있습니다. 위의 예제 코드는 클라이언트로 csv 파일이나 txt 파일을 받아 파일 내용을 출력하는 것입니다. 주의해야 할 점은 파일을 읽을 때 읽는 작업이 다 끝나야 내용을 확인할 수 있다는 점입니다.(19~27라인) 나머지 코드는 주석을 참고하시면 됩니다. 예제에서 csv 파일을 첨부하면 해당 파일의 내용이 출력되는 점을 확인할 수 있습니다. FileReader에 대한 API는 아래 링크에서 확인하시면 됩니다. ht.. 이전 1 ··· 8 9 10 11 12 13 14 ··· 34 다음