본문 바로가기

분류 전체보기99

로그인 처리 (1) - 프로젝트 생성 도서 를 학습하면서 실습과 내용을 정리해보려고 한다 로그인 처리는 Spring Boot, Spring Security 환경을 이용할 예정 먼저 Spring 프로젝트를 생성. 아래 링크에서 생성해준다 https://start.spring.io/ 의존성과 환경설정은 아래와 같다 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation .. 2022. 1. 18.
2021 NHN 공개채용 합격 후기 작년 9월 말부터 12월 끝자락까지 진행되었던 NHN 공개채용 과정을 되돌아보는 글을 써보려고 한다 2021년 NHN 공채는 총 4가지 과정으로 각 전형의 핵심을 한 줄 요약하면 다음과 같다 Pre-Test 1차 : 기본적인 코딩 능력 확인 Pre-Test 2차 : 탄탄한 CS 기본기 확인 1차 면접 : CS를 기반으로 한 논리적 사고, 문제해결능력 2차 면접 : CS를 기반으로 한 논리적 사고, 문제해결능력, 인성 보시다시피 기본적인 CS가 준비돼야 모든 테스트를 통과할 수 있다는 것을 알 수 있다 Pre-Test 1차 IT 기업을 준비하는 사람들에게 1차 테스트는 쉽게 통과할 수 있는 난이도로 나오기 때문에 딱히 언급할 내용이 없다 Pre-Test 2차 개인적으로 2차 테스트에서 대부분 탈락하는 것 .. 2022. 1. 10.
2021년 회고 이제 2021년이 며칠 안 남았다 특히 올해는 정말 정신없이 지나간 한 해였다 많은 일들이 있었는데 키워드로 나열하면 취업, 이직, 재테크 전역 후 어찌어찌 운도 따라서 빠르게 나름 좋은 회사에 취업을 했었다 하지만 내 기대와 다른 부분들에 많은 스트레스를 받았고 고민한 결과 이직을 준비했다 사실상 처음 해보는 취업 준비는 회사 생활과 병행하게 되면서 많은 노력과 굳건한 정신력이 필요했다 결과적으로 좋은 회사로 이직을 성공했고 새출발을 앞두고 있다 이번에 확실하게 깨달은 바가 있다면 '노력은 배신하지 않는다' 이다 2021년은 정말 취업과 이직에 다 써버린 것 같아서 한편으로 아쉽기도 하다 내년엔 자기 개발과 더불어 취미도 하나씩 만들어야겠다 그리고 재테크에 대해서 더 깊게 공부를 할 필요성을 느꼈다 주.. 2021. 12. 27.
LeetCode Weekly Contest 272 주말에 딱히 할 것도 없고 해서 이것저것 찾아보다가 릿코드에서 매주 진행하는 알고리즘 문제풀이 콘테스트가 눈에 띄었다. 내가 봤을 때가 콘테스트 시작 15분전이라 부랴부랴 참가 접수해서 참여했다 ㅎㅎ 이번 주는 특이하게 아마존 페이에 인터뷰 기회가 있는 콘테스트였던 것 같다! 뭐 나는 심심풀이로 참여한 거니까 그냥저냥 풀었는데 처음에는 저기 순위권에 있는 괴수들은 뭐하는 사람들인지 궁금했는데 아무래도 릿코드에 있는 문제들을 기반으로 출제돼서 저게 가능한 모양이다. 등수는 문제를 맞춰서 얻은 점수, 맞춘 시간 순으로 우선순위를 부여하는 것 같다. 풀다 보니 승부욕이 생겨서 나름 열심히 했는데 4번을 못 풀었다 ㅠ ㅠ 아이디어가 떠오르지 않아서 30분 정도 남았지만 그냥 포기했다 (배고파서 끈건 비밀..) .. 2021. 12. 19.
HTTP 상태코드 3XX HTTP 상태 코드에는 2XX, 3XX, 4XX, 5XX 등 다양한 케이스가 있다. 그중에 3XX는 Redirection을 하는 상태 코드로 실무에서 자주 사용되는 것 같다. Redirection은 아래와 같은 흐름으로 동작이 되는데, 아래 동작이 빠르게 수행되기 때문에 일반 유저들은 크게 신경 쓰지 않으면 모르고 넘어갈 수 있다. Redirection의 종류 영구 Redirection - 특정 리소스의 URI가 영구적으로 변경된 경우 ex) 위 그림이 영구 Redirection의 예시임 일시 Redirection - 일시적인 변경 ex) 회원가입 후 메인페이지로 이동 등 자주 사용되는 패턴 PRG: Post/Redirect/Get 특수 Redirection - 결과 대신 캐시를 사용 영구 Redirec.. 2021. 12. 19.
[중식] 소각(小阁) 회사 동생이랑 시험 보러 서울 올라온 김에 맛있는 거 먹자고 해서 찾아갔다 (중국 가정식을 하는 식당인데 가로수길+푸딘코 맛집이라 그런지 만석이었다) 이름은 소각(小阁), 작은 누각이라는 뜻이다 http://naver.me/FZJ92Fzz 소각 : 네이버 방문자리뷰 1,125 · 블로그리뷰 278 m.place.naver.com 일반적인 중식당같지 않은 모던한 인테리어에 상징적인 빨간색 포인트가 눈에 띄었다 가게를 운영하시는 분들이 한국인은 아닌 것 같았다 동생이랑 지하철에서 미리 사전 조사해서 런치 메뉴를 시키려고 했는데 평일만 해당됐었다... 나는 나름 계획적이라고 생각하는데 항상 하나씩 놓친다 ㅋㅋㅋㅋ 하나만 시키기엔 부족할 것 같고 두개 시키면 많을 것 같아서 고민하다가 어차피 자주 이렇게 먹는.. 2021. 12. 12.
존리의 금융문맹 탈출 - 존리 주식을 시작한 지 2년이 다 되어가는데 책을 읽은 것은 처음이다. 요즘은 유튜브 등에서 투자 전문가들의 투자 철학, 생각을 자주 찾아볼 수 있기 때문이다. 투자 철학은 거창한 것이 아니라 공개된 기업정보를 바탕으로 기업의 가치, 산업군의 전망을 분석하고 투자하는 개인의 신념이라고 생각 한다. 이익이 잘 나온다고해서 무조건 좋은 기업인 것도 아니며, 당장은 적자이지만 성장 가능성이 큰 기업도 존재하기 때문이다. 그리고 다양한 지표에 대한 개개인마다 두는 가중치가 매우 다르다. 내가 좋다고 생각하는 존 리님의 투자 철학이 이 책에 읽기 쉽게 잘 써져있다. 많은 미디어에 출현해서 얘기한 내용을 인터뷰 방식으로 풀어낸 부분과 그림을 많이 활용해서 책이 지루하지 않았다. 존 리님의 투자 철학을 핵심만 요약하자면 .. 2021. 12. 12.
LeetCode(릿코드) - Merge Two Sorted Lists 두 개의 정렬된 LinkedList를 하나의 정렬된 List로 병합하는 문제입니다. 예시는 아래와 같습니다. Point 1. 문제에서 주어진 ListNode 클래스를 사용하여 풀이해야 한다. 2. LinkedList의 특징과 Java 주소값 참조 개념에 대해 이해하고 있어야 한다. 처음엔 쉬운 문제라고 생각했는데 거의 1시간이 걸렸다. 자료구조를 제대로 이해하고 있다고 착각하고 있었다는 것을 깨닫게 해준 문제.. /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int.. 2021. 12. 6.
[카이센동] 오복수산 고등학교 2학년 때 과외선생님으로 인연을 맺고, 같은 IT 업계에서 활발히 활동 중이신 형님을 만났다 자주 못봐서 그런지 만나면 항상 시간 가는 줄 모르고 수다를 떤다 항상 만날때마다 나 돈 얼마 못 번다고 사주시는데... 팩트라서 신나게 얻어먹는다 ^^ 그래도 이번에 커피는 내가 샀다! 원래 형님 집 근처인 노량진 회센터에 갈까 했는데 확진자가 자주 발생해서 걸렀다 실제로 우리가 만난 날 회센터 방문자들 PCR 검사받으라는 문자가 왔다 ㅋㅋㅋ 아무튼 그래서 회센터 말고 형님이 가봤던 식당 중에 회 신선한 곳으로 갔다 http://naver.me/xScncYTw 오복수산 여의도점 : 네이버 방문자리뷰 627 · 블로그리뷰 337 m.place.naver.com 입구부터 아주 정갈한게 세련됐다 기본인 카.. 2021. 12. 5.
LeetCode(릿코드) - Valid Parentheses 3가지 형태의 괄호로 이루어진 문자열이 input으로 주어질 때, 해당 괄호가 유효한지 검증하는 문제입니다. Point 1. Open bracket이 주어진 이후에는 반드시 같은 형태의 닫는 괄호가 나와야 한다. 2. Open bracket이 모두 닫히지 않은 형태도 고려해줘야 한다. class Solution { public boolean isValid(String s) { boolean answer = true; Stack stack = new Stack(); int idx = 0; while(answer && idx 2021. 12. 5.
LeetCode(릿코드) - Longest Common Prefix 문자열 배열을 input으로 주어질 때, 배열의 모든 원소에 적용될 수 있는 '공통 접두사'를 찾는 문제입니다. 복잡한 아이디어가 필요한 문제는 아닌 것 같습니다. Point 1. 접두사란, 접사(接辭)의 하나로 어떤 낱말 앞에 붙어서 의미를 첨가하여 한 다른 낱말을 이루는 말. 정의에 따라 반드시 0번 인덱스부터 시작해야한다. class Solution { public String longestCommonPrefix(String[] strs) { StringBuilder sb = new StringBuilder(); int minLeng = 201; for(String str : strs) { minLeng = Math.min(minLeng, str.length()); } for(int i=0 ; i 2021. 12. 5.
LeetCode(릿코드) - Two Sum 정수 배열 nums와 정수 target이 input으로 주어질 때, nums안의 2개 element 합이 target과 같은 element의 index를 구하는 문제입니다. 예시는 다음과 같습니다. Point 1. 문제의 답은 오직 한 가지 쌍이며, 같은 element를 두 번 사용하지 않는다. 나는 단순하게 풀이를 했다. Flow 1) 주어진 배열 nums를 정렬한 sortArr에서 합이 target이 되는 element를 탐색 Flow 2) 해당 element의 index를 탐색 class Solution { public static int INF = 987654321; public int[] twoSum(int[] nums, int target) { int[] answer = new int[]{IN.. 2021. 12. 4.