Programming
-
BufferedReader, BufferedWriter와 ScannerProgramming/BaekJoon 2021. 7. 13. 01:37
보통 콘솔을 통해 입력 받을 때 Scanner 클래스를 이용했다. 그런데 오늘 백준 문제를 풀면서 BufferedReader, BufferedWriter와 Scanner 간에 속도 차이가 난다는 것을 알게 되었다. BufferedReader, BufferedWriter가 Scanner를 이용하는 것보다 더 빠른데 그 이유는 하드디스크의 속도가 느리고, 외부 장치 데이터 입출력 작업도 시간이 소요되므로, Scanner 클래스를 이용하여 입력받은 문자의 정보를 바로 바로 전달하여 출력하는 것보다 중간에 메모리 버퍼를 두어 데이터를 한데 묶어서 이동시키는 것이 더 빠른 결과를 가져오기 때문이다. ※ 참고 https://jhnyang.tistory.com/92 [Java 자바 입출력] BufferedReader..
-
자바 프로그래밍 시작하기Programming/Java 2021. 5. 25. 19:15
자바의 특징 플랫폼 독립적이다 : 운영체제에 상관 없이 실행 가능하다. 객체지향 프로그래밍 언어이다. JDK 1.8부터 함수형 언어를 지원한다. 메모리 관리를 자동으로 해준다. 소스파일 프로그래밍 언어로 명령을 구현한 파일 확장자가 java이다. 컴파일 자바처럼 고급 언어로 작성된 소스 파일은 컴퓨터가 인식할 수 없으므로, 컴퓨터가 이해할 수 있도록 기계어로 변환하는 작업 실행파일 소스파일을 컴파일해서 1과 0으로 변환된 파일 확장자가 class이다. 자바 언어는 다른 언어와 달리 컴파일 작업을 거쳐 생성된 파일이 기계어 코드가 아니라 바이트코드이다.(기계어 변환 전 중간단계 코드) 바이트 코드를 기계어로 변환하는 작업을 JVM이 담당한다. JRE와 JDK, JVM JRE (Java Runtime Env..
-
로그인과 세션 스코프 빈Programming/Spring 2021. 5. 1. 01:24
https://youtu.be/Ph6qfhofMNE 진행 중인 프로젝트를 테스트 해보던 중 문제를 발견했다. 문제 상황은 로그인을 한 번이라도 실패를 했을 때이다. 해결하고 싶은 문제 첫번째는 로그인 실패 후, 다른 페이지로 나갔다가 다시 로그인 페이지 진입 시에 로그인 실패 화면이 유지되는 것이고, 두번째는 로그인 실패 후 로그인에 성공하고, 로그아웃 후 다시 로그인 페이지로 진입하는 경우에 로그인 실패 화면이 유지되는 것이다. 위 두가지 상황 모두 사용자 입장에서 버그처럼(?) 느껴질 수 있는 상당히 어색한 부분이었다. 문제를 해결하기 위해 매핑되는 컨트롤러와 서비스 로직을 다시 한 번 살펴보았다. (수정 전 컨트롤러) @Controller @RequestMapping("/user") @Require..
-
form 입력창 border 설정 소소한 팁Programming/CSS 2021. 4. 13. 02:05
좌측은 목표 이미지이고 우측은 직접 마크업한 이미지이다. 내가 해결하고자 하는 문제는 두 가지이다. 1. 좌측과 같이 이메일 입력란과 비밀번호 입력란 사이에 border가 겹쳐보이지 않을 것 2. focus 시 위에서 언급한 부분의 box-shadow가 묻혀보이지 않을 것 html 마크업은 다음과 같이 작성했다. CSS는 다음과 같이 작성했다. 문제1 해결 각각의 input에 border-top, border-left, border-right...이렇게 설정하는 방법은 좋지 않아보였다. 고민하다가 클론 대상 사이트를 뜯어보고 발견한 방법은 바로 input의 겹치는 한쪽에 margin-bottom을 -1px을 주는 것이었다. 문제2 해결 focus 시 z-index를 주어 box-shadow가 묻히지 않도..