분류 전체보기
-
메가테라 11주차 주간회고회고 2022. 11. 4. 08:09
이번 주는 조금 아쉬웠던 주간이었다. 아쉬웠던 점이 많았던 만큼 좋은 액션 플랜들을 만들어서 앞으로 적용해보면 좋을 것 같다. 아쉬웠던 점들과 앞으로 어떻게 할지 액션 플랜을 만들어보자. 1. 주중에 책을 읽는데 시간이 많이 들어서 퀘스트 과제에 시간을 많이 쏟지 못하였다. 이 때까지는 퀘스트 과제를 책보다 우선순위에 두어서 책을 잘 못 읽어서 책읽기를 조금 더 우선순위에 두었는데, 책을 읽는데 꽤 많은 시간이 들어서 퀘스트 과제 진행도가 매우 늦어졌다. 책을 최대한 주말동안 절반 이상 읽고 정리를 해두는 것이 좋을 것 같다. 2. 퀘스트 과제도 어떻게 해야할지 모르겠어서 진행 속도가 매우 늦었다. 공식 문서를 보고 정보를 빠르게 습득하는 방식을 배워야 한다.. 아직은 공식 문서를 보고 정보를 습득하는 ..
-
20221103 TIL 비트코인과 암호화TIL 2022. 11. 3. 12:57
이번 주는 인증, 인가, 암호화 등에 대해 배우고 있다. 조금은 암호화 지식을 습득했고, 비트코인이 암호화와 관련이 있다고 했기 때문에 궁금했지만 이때까지는 알아보지 못했던 비트코인의 동작 원리를 알아보았다. 비트코인은 공개키와 해시 개념을 사용하고 있다. 공개키는 공통키와 비교되는 개념인데, 둘은 한 글자 차이지만 큰 차이가 있어 반드시 구분을 해야한다. 공통키를 먼저 알아보면, 암호화와 복호화에 공통으로 사용되는 키를 사용한다는 뜻이다. 즉, 비밀 메시지를 주고 받는 두 명이 동일한 키를 사용해서 암호화, 복호화한다. 공개키는 공개된 키가 있는 방식이다. 공통키 방식에서는 키만 들키면 비밀 메시지가 해석되므로 키를 매우 소중히 관리해야 한다. 하지만 공개키 방식은 누구든 알 수 있는 공개키가 있다. ..
-
20221102 TIL 해시 충돌을 어떻게 해결할 것인가TIL 2022. 11. 2. 21:04
오늘은 홀맨님이 맵 자료구조를 직접 구현해서 푼 코딩 문제 풀이를 공유해주셨다. 풀이처럼 필요에 따라 자료구조를 직접 구현할 경우도 있다고 하셔서 해시맵이 어떻게 구현되어 있는지 찾아보았다. 먼저 '맵'은 키와 키에 해당하는 값의 쌍으로 데이터를 다룬다. 그리고 키로 키에 해당하는 값을 바로 조회할 수 있기 때문에 어떤 값을 조회할 때 매우 유리한 자료구조이다. 해시 맵은 이름처럼 해시를 이용한 맵이다. 키에 대한 해시값으로 값을 저장하고 조회한다. 그런데 해시함수는 반환 값으로 가능한 경우의 수가 정해져 있기 때문에 그 개수 이상의 값을 해시함수에 돌렸을 때 무조건 겹치는 값이 나올 수 밖에 없다. 따라서 해시 함수를 돌렸을 때 동일한 결과가 나올 수 있는데, 이를 해시 충돌이라고 하고, 해시 맵에서는..
-
20221101 TIL 코테에 대비하자 2TIL 2022. 11. 1. 18:12
Collection 외에도 정말 자주 쓰이는 String에서 유용한 메서드들을 모아보자. String.charAt(int index) String.concat(String string) String.contains(Charsequence charsequence) String.endsWith(String suffix) String.equals(Object object) String.equalsIgnoreCase(String string) String.indexOf(int char) char와 일치하는 첫번째 index를 반환한다. String.indexOf(int char, int fromIndex) 문자열에서 char와 일치하는 fromIndex이후 첫 index를 반환한다. String.indexOf(..
-
20221031 TIL 코테에 대비하자TIL 2022. 10. 31. 21:57
코딩테스트를 풀 때 효율성 테스트를 통과하려면 Collection을 이용하는 경우가 많다. 그런데 아직 Collection들의 메서드들에 대해 잘 모르면 문제를 풀기 어려운 것 같아서 자주 쓰일 만한 메서드들을 정리해두어야겠다고 생각했다. Collection의 메서드 Collections.max(Collection collection) Collections.max(Collection collection, Comparator comparator) Collections.min(Collection collection) Collections.min(Collection collection, Comparator comparator) Collections.swap(List list, int i, int j) i번째와..
-
cmd m 단축키 끄기여러가지 팁 2022. 10. 31. 20:47
cmd n을 쓸 일이 많은데 실수로 cmd m을 눌러 최소화되는 경우가 많이 발생해서 cmd m을 끄기로 했다. Minimize혹은 최소화에 새로운 안 쓸 법한 단축키를 등록하면 된다. 먼저 System preferences(시스템 환경설정)에 들어간다. shortcut(단축키)를 검색한다. keyboard shortcuts(키보드 단축키)에 들어간다. App Shortcut에 들어가서 +를 눌러 Minimize, 최소화에 치지 않을 법한 단축키를 쳐서 등록한다. System preferences를 닫고 cmd m을 눌러본다! 안 줄어들면 성공! 끝.
-
11주차 개념노트메가테라 2022. 10. 30. 22:25
Spring Security 자바 어플리케이션에 인증 인가를 모두 제공하는 쉽게 다룰 수 있는 프레임워크이다. 대부분의 시스템에서는 인증과 인가 처리를 해야하기 때문에 매우 유용한 프레임워크이다. session fixation, clickjacking 등의 공격을 막아주는 기본적인 보안을 갖추고 있다. Spring Security는 Servlet filter 체인을 자동으로 구성해서 요청이 filter를 거치게 한다. 사용자가 로그인 요청을 보내면 AuthenticationFilter로 사용자가 보낸 정보가 오고, 아이디와 비밀번호로 UserPasswordAuthenticationToken을 발급하게 되고, 이 토큰을 인증을 담당하는 AuthenticationManager에게 전달하게 된다. Authen..
-
20221030 TIL 제네릭 메서드와 Functor에 대해 알아보자TIL 2022. 10. 30. 15:46
모나드라는 개념을 많이 들어봤는데, 잘 모르겠어서 김동경님의 naver d2의 모나드란무엇인가 영상을 보았다. https://www.youtube.com/watch?v=jI4aMyqvpfQ&t=726s 개념을 너무나 친절하고 쉽게 알려주셨는데, 제네릭이 들어간 코드로 설명을 하시는데, 제네릭이 들어간 코드를 분석할 수가 없었다. 그래서 제네릭에 대해 다시 한 번 정리를 해야겠다는 생각을 했다. 아래의 코드는 아주 짧고, 간결한 코드인데, 제네릭 개념이 없다면 매우 혼란스럽고 도저히 해석을 할 수가 없는 코드이다. 위의 코드를 이해하기 위해 제네릭 프로그래밍에 대해 먼저 알아보자. 제네릭 프로그래밍은 자료형에 따라 매번 반복적으로 자료형만 다른 코드를 짜야하는 경우가 있을 때 그렇게 짜는 것이 매우 비효..