본문 바로가기

자바

여을심은 그동안 어디서 뭘 했을까 백문이 불여일타 입사 후 5개월 쯔음인가. CTO님과 페어를 하다가 엄청 혼났다. Optional 로 구현된 로직의 테스트 케이스를 성공시켜보라고 하셨는데, 내가 거기서 아둥바둥대며 아무것도 하지 못했다. 그동안 공부를 나름 한다고 해왔는데, 조금의 압박감으로 아예 머릿속이 하얘지는 게 바보같았다. 이 날을 계기로 그동안의 공부방식을 되돌아봤었다. 나는 머리만 커지는 공부를 하고 있었다. 이런 저런 지식만 쌓고 막상 구현하려면 손이 느리고 내 것으로 만든 적이 없으니까 응용도 하지 못하고, 좀만 코드가 달라져도 이해하는데 많은 시간이 걸렸다. 머리보다 손이 빠른 공부를 해야겠다 다짐했다. 학学보다는 습习에 많은 시간을 투자하기로 한거다. 블로그를 잠시 중단한 이유다. 블로그 포스팅은 생각보다 많은 시간이.. 더보기
[210916] 백준 1966번 문제 풀이 / 프린터 큐 문제의 핵心 1. 데이터의 개수(N 0) { StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st.nextToken()); LinkedList q = new LinkedList(); st = new StringTokenizer(br.readLine()); for(int i=0; i 더보기
[210916] 백준 1874번 문제 풀이 / 스택 수열 문제의 핵心 1. 스택에 원소를 삽입할 때는, 단순히 특정 수에 도달할 때까지 삽입한다. 2. 스택에서 원소를 연달아 빼낼 때 내림차순을 유지할 수 있는지 확인한다. import java.util.Scanner; import java.util.Stack; public class Q3_1874 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); StringBuilder sb = new StringBuilder(); Stack stack = new Stack(); int N = sc.nextInt(); int count = 1; while(N --> 0) { int value = sc.nextInt(); while(c.. 더보기
[Spring Boot] Spring Security 📌 인증 Authentication 사이트에 접근하는 사람이 누구인지 시스템이 알기 위한 방식. 익명 사용자 anonymous user 를 허용하는 경우도 있지만 특정 리소스에 접근하거나 개인화된 사용성을 보장 받기 위해서는 반드시 로그인 하는 과정이 필요하다. 로그인은 보통 username/ password를 입력하고 로그인 하는 경우와 sns 사이트를 통해 인증을 대리하는 경우가 있다. 📌 인가 혹은 권한 Autnorization 사용자가 누구인지 알았다면 사이트 관리자 혹은 시스템은 로그인한 사용자가 어떤 일을 할 수 있는지 권한을 설정한다. 권한은 특정 페이지에 접근하거나 특정 리소스에 접근할 수 있는 권한 여부를 판단하는데 사용된다. 개발자는 권한이 있는 사용자에게만 페이지나 리소스 접근을 허용.. 더보기
[210614] 자바 문제 리딩, static static은 객체를 생성하지 않고 사용하기 위해 만든 키워드이다. static이 붙은 메서드나 변수는 "클래스 이름. 메서드"나 "클래스 이름, 변수" 처럼 사용한다. 6 "H"나 "C" suit(슈트)를 갖도록 SUIT 배열로 선언한다. static 이므로 객체를 생성하지 않고 사용할 수 있다. SUIT의 length는 2다. 7 "A"에서 "T"사이의 valu(밸류)를 갖도록 VALU 배열로 선언한다. static 이므로 객체를 생성하지 않고 사용할 수 있다. VALU의 length는 10이다. 6-7 "H"나 "C" suit(슈트)에 대해 "A"에서 "T"사이의 valu(밸류)를 조합하여 20개의 카드값을 만들도록 한다. "CA", "C2" ,....... ,"CT" , "HA", "H2",..... 더보기
[210614] 자바 문제 리딩, 객체와 은닉화 6 Card의 중요 데이터(멤버필드)로 Card 값을 문자열 타입으로 선언한다. 접근 제한자를 private으로 선언하여 데이터를 보호한다. 9-11 Card 값을 외부로 반환하는 메소드를 선언한다. 14 -17 Card("H2")를 호출한다. 다른 생성자를 호출하면서 중요 데이터인 멤버필드를 H2로 초기화한다. 19-22 Card 값을 입력받는 생성자를 선언한다. 이미 존재하는 생성자에 대해 아규먼트 개수나 타입이 다른 생성자 오버로딩 24-28 Card 생성자에 아규먼트로 카드 객체를 받는 '복사 생성자' . 입력받은 다른 Card 의 값만 받아 카드값을 초기화한다. 값은 같지만 다른 객체를 만들 때 사용한다. 30-34 toString () 오버라이딩 해, 레퍼런스 변수로 출력가능하게 한다. 6-7.. 더보기