본문 바로가기

분류 전체보기

(873)
[UX] 사용자의 암호가 최근에 변경되었을 경우 피드백 보통 아이디와 비밀번호 입력이 합쳐져 있는 것에 반해 Google의 로그인 창은 아이디를 먼저 입력받고, 비밀번호를 따로 입력을 받는다. 1단계: 이메일주소 입력 2단계: 비밀번호 입력 단순히 비밀번호가 잘못 입력되었을 경우에는 아래와 같은 메시지가 나온다. 만약 최근에 암호가 변경디었고 비밀번호 입력이 잘못되었을 경우에는 비밀번호가 상기를 위해 아래와 같은 메시지를 제공한다. 이 말은 변경전 비밀번호의 이력(보통 단방향 해시)을 가지고 있다는 말이기도 하다.
[eclipse] Runnable JAR File 구현은? 자바 카페에서 아래와 같은 질문이 올라왔다. 질문 이클립스에서는 아래와 같이 프로젝트에서 Export로 Runnable JAR 파일을 만들수가 있습니다. 이것을 CMD 창에서 만드려면 어떤 명령어를 입력해야 하나요? 라이브러리 JAR도 포함시킬 때 추가 명령어 입력하는 부분도 궁금합니다. 생성된 JAR 파일에는 META-INF가 자동으로 포함되어 있는데요, CMD 상에서 JAR 파일 만들때에는 MAINFEST.MF 파일이 반드시 있어야 하나요? 느낌은... 일단 질문 자체를 듣고 느낀 점은 IDE의 장점이자 단점을 느낄 수 있었다. 통합개발도구(IDE)는 개발시에 코드입력 뿐만 아니라 컴파일 등의 반복적으로 하는 것과 디버깅, 리팩토링 등 여러가지를 도와준다. 만약 자바를 명령어부터 시작했더라면 컴파일 ..
[Java] var는 키워드가 아니다. "개발하자" 라는 슬랙에서 이석민(닉네임 lee_maru)님이 "var는 키워드가 아닙니다."라는 이야기를 해서 찾아보게 되었다. 자바언어 규약(JLS)를 찾아보니 var는 키워드가 아니라고 한다. var is not a keyword, but rather an identifier with special meaning as the type of a local variable declaration reference: docs.oracle.com/javase/specs/jls/se12/html/jls-3.html#jls-3.9 국내 출판된 책들 중에는 var 이 키워드라고 되어 있는 책도 있었다. - 장윤기 님의 Practical 모던 자바
[현실] piggyback을 할지 말지? 피기백이란 다른 누군가를 등 뒤에 업고 같이 움직이는 것을 말한다. 물류나 IT에서도 차용되어 종종 사용된다. 내가 이 용어를 들었던 것은 네트워크 수업에서 흐름제어 방식 중 하나였다. 프로토콜 계층에서 수신측에서 수신된 데이터에 대한 확인 응답(ACK)를 즉시 보내는 대신, 전송할 데이터가 있는 경우에 그 데이터 프레임 안에 확인 필드를 덧붙여 전송하는 오류제어 및 흐름제어 방식으로 배웠다. (그외 stop-and wait, 슬라이딩 윈도우 방식 등이 있다.) 송신제어방식: 정지대기 방식(stop and wait) 전송률 기반 흐름제어: rate-based 윈도우 기반 흐름제어: window-based -> sliding window 하지만 이 방법에도 장점이 있으면 단점도 있을 수 있기에 상황에 맞는..
[Lombok & Spring (Jackson)] @Getter(lazy=true)를 쓸 때 주의해야 할 점 효진님이 getter 에서 매번 객체를 만드는 것에 대해 이유를 물어봐서 한 번만 만들어지게 하기 위해서 아래와 같이 lazy 를 true로 했다. import lombok.Getter; public class TistoryIssueParams { @Getter(lazy = true) private final TistoryNumber tistoryNumber = TistoryNumber.of(tistoryNumberType, tistoryNumberValue); 이런 식으로 annotation을 달면 lombok은 AtomicReference 로 필드를 만들고 늦은 초기화를 하는 코드를 만든다. 늦은 초기화를 Double-checked locking idiom을 사용하는 것을 알 수 있다. public ..
[Alfred] 워크플로우 - 단축키로 파일 옮기기 업데이트 알림을 검색창 밑에 표시를 하는 센스.
[think] 오래걸리는 작업을 나눠서 하는게 좋을까? 현금영수증 배치처리 하면서 도비랑 논쟁했던 사항이다. AWS Lambda에 비즈니스 로직을 넣는 것이 어떤가에 대한 이야기 일 수 있다. 내가 로직을 넣었던 이유는 작업을 끊어서 처리를 했으면 좋겠는 것에 이유가 있었다. 가령 큰 용량의 파일을 이동을 하는 작업을 한다고 한다. 총 4개의 디렉토리를 물리적으로 분리된 곳에 이동을 시키려고 한다. (각 디렉토리에는 다수의 서브디렉토리가 있고 데이터들이 있다.) 이동은 복사 + 삭제의 트랜잭션 작업이라고 할 수 있다. 만약 작업을 각 디렉토리별로 트랜잭션을 묶어 이동을 시키는 것과, 전체 4개를 한꺼번에 하나의 트랜잭션으로 묶는 것은 어떤 차이를 가져올까? 후자의 경우로 하면 아래와 같은 그림을 그릴 수 있다. 위가 이동할 대상이고, 아래가 옮겨질 대상이다...
[tomcat] 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 증상 org.apache.jasper.servlet.TldScanner.scanJars 13-Nov-2020 13:26:40.105 정보 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 스캔했으나 TLD가 없는 JAR들의 전체 목록을 보시려면, 로그 레벨을 디버그 레벨로 설정하십시오. 스캔 과정에서 불필요한 JAR들을 건너뛰면, 시스템 시작 시간과 JSP 컴파일 시간을 단축시킬 수 있습니다. 아래 블로그를 참고한다. javacan.tistory.com/entry/decrease-tomcat-startup-time-by-skip..