본문 바로가기

분류 전체보기87

[Java] BufferReader로 입력받기 그동안 백준 알고리즘 문제를 풀 때 Scanner를 사용하며 문제가 없었지만 메모리 문제나 실행 속도 문제를 신경쓰기 시작하면서 알게된 BufferReader에 대해 복습해보려고 한다. Scanner는 사용하기 간단하고 다양한 자료형으로 입력받을 수 있다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int num = scan.nextInt(); float actualNum = scan.nextFloat(); String str = scan.next(); String line = scan.nextLine(); } } 위의 예시.. 2021. 11. 30.
프로젝트E. 예약 : 한줄평 관련 Web API 만들기 이번 프로젝트는 두번에 걸쳐 통과를 했다. 두번 돈 안내려 했는데 또 내게되어서 아쉽다.. 예약했던 상품에 댓글 달기, 댓글 목록 보기(기존 내용 수정), 이미지 다운로드(업로드) Web API를 구현해야 한다. Comment1 이미지는 프로젝트 내부 디렉토리가 아닌 외부에 저자하는 것이 좋습니다. 이유는 지난 코드리뷰에서 말씀드린 것과 같이 war 빌드시 내부 디렉토리에 파일을 write할 수 없으며, 추가적으로 수정사항 적용시 변경된 클래스만 아닌 전체 프로젝트를 배포하기 때문에 방식에 따라 이전 변경되기전 프로젝트 디렉토리를 삭제후 배포하게 되면 프로젝트 내부에 write한 이미지 파일 또한 삭제할 수도 있습니다. final String ROOT_PATH = request.getSession().g.. 2021. 11. 22.
[Java] HashMap을 Value 기준으로 정렬하는 방법 알고리즘 문제를 풀면서 HashMap을 정렬해야하는 경우가 있었는데 복습할 겸 다시 정리해보려고 한다. HashMap의 Value를 기준으로 정렬하는 함수(sortByValue)를 만들어보자. sortByValue 함수 전체 코드 public static HashMap sortByValue(HashMap hm){ // 1 List list = new LinkedList(hm.entrySet()); // 2 Collections.sort(list, new Comparator() { public int compare(Map.Entry o1, Map.Entry o2) { return (o1.getValue()).compareTo(o2.getValue()); } }); // 3 HashMap temp = new.. 2021. 11. 12.
전화번호 실시간 체크 (eXBuilder6) ipb_sendrTelno.putValue(ipb_sendrTelno.displayText.replace(/[^0-9]/g, "").replace(/(^02|^0505|^1[0-9]{3}|^0[0-9]{2})([0-9]+)?([0-9]{4})$/,"$1-$2-$3").replace("--", "-")); (JQuery) $(document).on("keyup", ".phoneNumber", function() { $(this).val( $(this).val().replace(/[^0-9]/g, "").replace(/(^02|^0505|^1[0-9]{3}|^0[0-9]{2})([0-9]+)?([0-9]{4})$/,"$1-$2-$3").replace("--", "-") ); }); 2021. 10. 28.
프로젝트D. Spring Security를 이용한 로그인 및 예약 관련 Web API 만들기 인턴 생활을 시작하게 되면서 시간날때 조금씩 진행하느라 생각보다 오래 걸린 프로젝트였다. 이번 프로젝트에서는 예약하기, 예약 목록 보기, 예약 취소 기능을 구현해야 한다. 또한 예약을 하기 위해서는 로그인 기능을 구현해야하고 로그인을 하지 않은 사용자는 로그인할 수 없다. Commnet1 단일 책임 원칙에 맞게 작성했는지 고민해보시기 바랍니다. 단일 책임 원칙이란 모든 클래스는 하나의 책임만을 가지며, 클래스는 그 책임을 완전히 캡슐화해야 한다는 것을 의미한다. 예약에 대한 댓글 기능을 구현하면서 해당 메소드를 예약 컨트롤러에 위치시켰다. 이는 예약에 관한 책임을 갖고 있지만 댓글에 대한 책임도 갖고 있다. 정답은 없지만 예약 컨트롤러에 위치시키는 것보다 다른 컨트롤러를 만들어 위치시키는게 좋을 것이다... 2021. 10. 19.