오전에는 구구🕊 의 두 번째 재테크 강의를 들었다. 어려운 말들이 가득해서 당장 이해하기는 어려웠다. 요즘 스타트업에 관심이 많았는데 재무제표를 보고 스타트업을 분석하는 방법을 알게 되어서 좋았다. 😀 오늘은 요 리트코드 문제를 풀었다. 리드코드 Medium 문제는 아무리 쉽게 풀려고 해도 어려운 것 같다. 😥😥 엉엉초반에 문제가 어려워도 당황하지 않고 잘 설명하는 연습을 하고자 했는데, 솔루션이 바로 떠오르지 않으면 당황하게 되는 건 어쩔 수 없다. 당황하지 않고 문제에 대한 해석을 하는 쪽으로 뇌를 많이 굴리는 연습을 해야겠다. 😄class Solution {public: int characterReplacement(string s, int k) { int ans = 0, ..
오늘 오전에는 구구의 재테크 강의가 있었다. 얼른 돈을 벌어서 나만의 자산 체계를 만들어보고 싶다고 생각하였다. 💰오후에는 모 기업 개발자 면접이 있었다. 기억나는 질문은 다음과 같다.자기소개XXX는 어떤 회사로 알고 지원하였나요? 어떤 회사를 선호하나요?고객이 원하는 가치를 제공해주다 보면 속도가 떨어지는 등의 문제가 있을 것이다. 어떻게 고객에게 이러한 성능적인 문제를 설득할 수 있겠는가? 개발자로서 지향하는 조직 문화는 무엇인가?쿼리에 인덱스를 적용한 이유?팀 프로젝트 동안 트러블이 있었다면?학생회장 기간동안 어떤 성과를 냈는가?스레드를 사용하였을 때 동시성 문제가 발생하는데, 어떻게 해결하는 게 제일 좋을까요?서버가 여러 대라면 어떻게 구현할 것인가?서버 내에 각각 NginX 가 있는데 왜 그런..
주말이 끝나고 다시 월요일이다. 주말에는 머리를 좀 식혀가며 공부했는데, 다시 열심히 바짝 해보자. 💪아침에는 동시성 처리 관련한 경험을 트랜잭션 격리수준과 연관지어 정리해보았다. 당시에는 Serializable을 설정하면 무조건 트랜잭션 하나만 데이터베이스에서 동작할 수 있는 줄 알았다. 하지만 트랜잭션이 점유하고 있는 자원에 대해 넥스트 키 락으로 읽기 잠금을 걸어 다른 트랜잭션에서 읽기는 물론 변경이 불가능하게 한다.InnoDB implicitly converts all plain SELECT statements to SELECT ... FOR SHARE if autocommit is disabled. 추가로 서로 다른 사용자가 동시 요청으로 최대 인원 수보다 많은 참여 데이터가 쌓이는 경우를 ..
날씨가 조금 따땃해진 11월이다. 🍂불확실한 상황에 매너리즘에 빠지기 쉽지만 공부하고 싶은 것들을 꾸준히 공부하며 나아가자 😁 오늘도 오후 두 시간 정도 리트코드를 풀고 저녁에는 면접 스터디를 하였다. https://leetcode.com/problems/set-matrix-zeroes/Set을 이용해 0으로 만들 행과 열을 저장하고 NM번 탐색하여 Set에 저장된 행, 열이라면 0으로 세팅하는 방식으로 풀었다. 총 시간 복잡도는 C++로 풀었으므로 O(NM * log(NM))이다. 그리고 공간 복잡도는 O(N)이다. 시간 복잡도를 O(NM)으로 줄이고 공간 복잡도를 O(1)로 개선하도록 풀어보았다. 행렬 문제는 필기 없이 IDE에서만 풀기는 어려운 것 같다 😅 https://leetcode.com..
오늘은 두 시간 정도 리트코드를 풀었다. 덱을 사용하여 문제를 풀어보았다. 자바 덱은 익숙치 않아서 문서를 계속 찾아보았다. 코딩테스트를 위한 자바 문법이 어색하다. https://leetcode.com/problems/reverse-linked-list/class Solution { public ListNode reverseList(ListNode head) { ListNode node = null; while(head != null) { ListNode temp = head.next; head.next = node; node = head; head = temp; } r..
오늘은 리크루팅 데이🎉 였다. 오전에 늦게 일어나서 오후까지 리쿠르팅 데이 행사에 참여하였고, 저녁 먹기 전까지 리트코드를 풀었다. https://leetcode.com/problems/clone-graph/description/ 이 문제가 특히 어려워서 헤매다가 결국 솔루션을 보았다. public Node cloneGraph(Node node) { if(node == null) { return null; } Map mp = new HashMap(); // origin, copy int val = node.val; mp.put(node, new Node(val, new ArrayList())); Queu..
면접 스터디를 본격적으로 시작한 하루이다.이런 저런 일로 오후 내내 정신이 없었고 저녁에 인성 면접 질문과 이력서 포트폴리오 기반 질문을 뽑아보았다. 어떻게 내 포트폴리오에서 질문을 만들기 위해 포커싱 해야할 지 어려웠다.GPT가 추천해준 질문은 조금 추상적이여서 크게 도움이 안되었다. 내가 사용한 키워드 위주로 뻗어나갈 수 있는 가지들을 기록하고 스스로 답변해보는 방식으로 공부하였다.혼자서도 잘 안되어서 백호한테 질문을 뽑아달라고 요청했다. 확실히 혼자 준비하는 것보다 다른 사람들에게 물어보는 것이 제일 효과적이다 👍 오늘 공부한 것 301와 302 상태 코드의 차이. 302 상태코드와 함께 리디렉션 요청을 보냈을 때 클라이언트의 동작 HTTPS의 동작 방식SSL의 암호화 방식중간자 공격 방지 원리인..