[우테코] 8기 최종 테스트 후기 (백엔드)
·
일상
1차 합격 이번 8기 프리코스 4번째 과제는 오픈 미션으로 스스로 도전 과제를 설정하는 방식이었는데,'진짜' 도전이랍시고 너무 어렵게 잡아 미완성으로 제출했었기에 정말 예상치 못했다. 그랬는데.. 12월 29일 합격 메일이 와서 정말 기뻤다.다른 합격 소식은 없었던 한 해였는데, 우테코 1차 합격으로 25년을 마무리할 수 있다는 사실이 감사했다. 최종테스트 준비 최종 테스트는 직접 시험장에 가서 AI와 외부 도움 없이 스스로 문제를 풀어내야 한다.그냥 문제 보고 손 코딩만으로도 문제를 풀어낼 수 있을 정도가 돼야겠구나 싶었다. 문제점 1 : Java가 약함기쁜 한편으로 Java 사용에 취약한 나로서는 빨리 대책을 세워야 했다. 그동안 백엔드를 Java + Spring으로 해왔는데 Java에 취약..
[std::collections] Rust BinaryHeap 내부 구조 및 사용법 (우선순위 큐 / 힙)
·
Rust 연구 노트/Rust 이야기
요즘은 C/C++보다 Rust로 알고리즘 문제를 풀고 있어서 문제마다 필요한 라이브러리를 공부 중이다.C++이나 Java는 구글링하면 PS에 필요한 라이브러리 사용법 포스팅이 많은데 Rust는 국내에 없어서 쓴다. 물론 공식 문서가 있지만 영어가 불편한 분들을 위해 필요한 것만 한글로 알잘딱깔센으로 써보겠다.내부 구현이나 철학은 필요없고, 라이브러리 사용법만 알고 싶다면 카테고리에서 바로 넘어가면 된다.그렇지만 내부 구현이나 동작 흐름 위주로 분석한 글이라는 점을 참고하자. 그래서 skip 하지 않고 이 글을 다 읽으면우선순위 큐 자료구조와 힙/힙 트리Rust BinaryHeap의 내부 구조와 동작 흐름C/C++, Java와 비교했을 때의 차이점은 확실히 이해할 수 있을 것이라 장담한다. 📖 ..
[도서리뷰] 0과 1 사이
·
Etc./도서리뷰
"한빛미디어 서평단 활동을 위해서 책을 협찬 받아 작성된 서평입니다." 간략 소개- 책 제목: 0과 1 사이- 분야: 리눅스, 저수준, 보안- 난이도: 上- 분량: 712p (총 9챕터)- 참고사항: "BINARY HACKS: 해커가 전수하는 테크닉 100선" 개정판 처음에 Hacks를 보고 "오호, 해킹을 위한 책이군.. 나도 보안 동아리 출신인데 엣헴"하면서 골랐는데,Hacks가 해커의 hack은 아니고, 그냥 Life Hack(생활의 꿀팁) 같은 의미로 쓰였다.물론 해킹/보안 영역에 적합한 것도 맞는데, 저수준에서의 프로그래밍 노하우라 보면 된다. 내가 본 책 중에 가장 저수준이었고, 가장 어려웠다 (다 읽어보지도 못 함)일단 리눅스를 사용하지 않거나 모른다면 이해하기 쉽지 않을 것이다.애초에..
[코테] Monito 환경 세팅 Tip (핸드폰 카메라 위치 문제 해결)
·
Etc.
아마 다들 열심히 노력해서 서류를 통과하고 코딩테스트를 앞둔 상황일 텐데,비대면 코테의 경우 Monito + 프로그래머스 조합이 대세인 것 같다. 이 Monito라는 건 시험감독을 위해 쓰이는 건데,비대면으로도 정정당당하게 코테를 보게 하기 위해서 엄격한 환경 세팅을 필요로 한다. 여기서 좀 주의해야 할 부분을 짚고 넘어가고, 까다로운 환경 세팅 꿀팁을 공유하려 한다.주의사항이 꽤 많아서 놓칠 수 있는데, 코테 잘 봐놓고 이걸로 떨어지면 서러우니까 유의하자. 사전 테스트를 해보고 휴대폰 카메라 세팅에서 이거 어떻게 하나 싶어서 구글링해 온 분도 있겠지만,아직 사전 테스트를 안 해본 사람이 있다면, 여유 시간 충분히 두고 하는 게 좋다. 처음 하면 한 10분 이상 뚝딱거릴 수 있으니 꼭 여유 있게 ..
[백준] 24390번: 또 전자레인지야? (C / C++)
·
Algorithm/문제 풀이
문제문제 링크: https://www.acmicpc.net/problem/24390 문제 분석 쉬운 문제이긴 한데, BFS로 푼 사람이 꽤 보여서 더 쉬운 풀이를 공유하려고 포스팅했다. 다들 집에서나 편의점에서 전자레인지 한번쯤은 써봤을 거다.주어진 조리 시간을 맞추는데 버튼을 최소로 누르기만 하면 된다. 보통 이렇게 시간이 주어지는 문제에서는 단위를 통일해주면 편하다.예를 들어 `mm:ss`로 나눠진 경우엔 분에다가 60 곱해서 초로 통일하면 계산하기 편하다. 근데 사실 이 문제에서는 굳이 통일 할 필요가 없다.초로 통일해서 풀어도 쉽지만, 이 문제는 그대로 두면 더 쉽게 풀 수 있거든.마찬가지로 문제에 따라 문자열 그대로 정렬해도 충분한 경우가 있으니, 시간 나온다고 다 바꾸진 말자. 분과..
[백준] 22994번: 이미지 축소 (C / C++)
·
Algorithm/문제 풀이
문제문제 링크: https://www.acmicpc.net/problem/22994 문제 분석글만 봐서는 이게 대체 무슨 말인가 싶을 수 있다. 다들 어릴 때 한번쯤 그림판에서 그림 좀 확대해봤을 텐데,이런 비트맵 그림을 떠올리면 매우 간단하다. 늘려진 이미지(우)를 보고 원본 이미지(좌)를 구해내면 되는 문제다. 이미 늘려진 이미지를 손상없이 축소하려면,색칠된 구역을 길이 대비 그대로 살리면서 면적을 줄이면 된다. 아스키 코드로 표현된 부분을 이렇게 색으로 바꿔서 생각해보면,원본에서 늘렸을 때 같은 색상 부분은 늘린 만큼 늘어날 것이다 (그게 확대니까) 우선 몇 배 확대했는지를 알아야 한다. 여기서 판단이 필요한 부분은 저 왼쪽 눈의 경우에서 노란 영역과 검은 영역이다.노란 부분은 계속 이..
[DB] 클러스터 인덱스구조(InnoDB)에서 랜덤 PK와 순차 PK 성능 비교
·
Computer Science/DB Engineering
발단GitHub 사용 증진 및 편의 기능을 제공하는 서비스1. 특성상 회원이 모두 GitHub 유저이고, GitHub로 소셜 로그인한다.2. 팀에서 사용할 RDB를 MySQL로 채택한 상황이다.3. Github 고유 사용자 번호는 8자리 정수로 구성 -> 가입 시기에 따라 값이 천차만별이다. 프로젝트를 진행하면서 팀에서 User 테이블 PK를 GitHub 고유 사용자 번호로 사용할 지,AUTO_INCREMENT 인조키를 사용할 지에 대한 논의가 있었다. 나는 InnoDB (클러스터 인덱스 구조) 특성상 랜덤 PK는 page split을 유발해 비효율적이라 생각했다. -- 이렇게 8자리 정수 형태임ex) github_user_id: 94708156 -- (내 id에서 일부 자리만 변경한 형태) 왜냐..
[도서 리뷰] 코드 너머, 회사보다 오래 남을 개발자
·
Etc./도서리뷰
한빛미디어 서평단 활동을 위해서 책을 협찬 받아 작성된 서평입니다. # 오늘의 책 📖 어느 분야에 종사하든, 일만 잘한다고 좋은 동료가 된다고 생각친 않는다.결국 어떤 일이든 사람이 하는 것이니, 함께 하고 싶은 사람이 되는 게 먼저라고 생각한다.물론 일도 잘해야지 특히 개발 쪽은 코딩 잘 하고 설계 잘하면 장땡아니냐? 할 수 있지만,실제로 팀 프로젝트를 해보면 자주 회의를 하면서 의견을 조율해가야하는 일이 많다. 기본적인 소통이 안 된다면, 개발을 얼마나 잘 하든 같이 프로젝트 하기 꺼려질 것이다.내 생각엔 "개발을 잘 한다"는 말에는 커뮤니케이션이 원활하다라는 의미까지 포함인 것 같다. 그런 의미에서 빅테크 소속 선배님들로부터 소프트 스킬 뿐만 아니라 커리어 조언을『코드 너머, 회사보다 오래 ..