Skip to content

Instantly share code, notes, and snippets.

[Retrospective] 당근 직무 면접까지의 과정 회고

| 글을 시작하며

12월 초, 당근 __ 팀의 상시 모집 공고에 지원하여 2차 직무 면접까지 경험해볼 수 있었습니다. 아쉽게도 직무 면접에서 탈락하여 당근과 함께하지 못했지만, 면접을 준비하는 과정 그리고 면접관분들과 실제 이야기 하는 과정에서 크게 성장할 수 있었던 경험이라고 생각합니다. 이번 글에서는 서류, 면접 과정 등을 회고하면서 느낀 것들을 공유해보고자 합니다.

서류

2024.10 급작스러운(?) 퇴사 후, 약 3주 동안 집중적으로 Resume를 작성했습니다. 먼저 작성을 해보고, 함께 일했던 팀 리더분, 지인 분들의 피드백을 통해 여러 번 수정한 뒤 전체적인 틀을 완성할 수 있었습니다.

피드백에서 가장 인상 깊었던 부분은 채용 공고의 분석을 기반으로, 채용 공고의 핵심 키워드에 맞춰 내 경험을 1:1로 매칭하는 것이었습니다. Resume를 확인하는 사람으로 하여금 주요 관심사를 따로 분석할 필요 없이 키워드로 드러날 수 있도록 작성하는 것이 핵심 포인트였습니다.

| Lifecycle of a Process

image [ 그림 1 ]

이전에 정리했던 프로세스 라이프사이클 을 간단히 정리하면 [ 그림 1 ] 과 같다. 일반적으로 OS CPU 스케줄링 실행 단위를 스레드라고 볼 수 있는데, 자바 스레드의 라이프사이클 역시 위 구조를 따르고 있을지 한 번 알아보자.

| Lifecycle of a Thread in Java

[MySQL] Index [1] - 인덱스 사용 배경, 엔덱스와 디스크 I/O

| 인덱스 사용 배경

image [ 그림 1 ]

image

OAuth 2.0


| Giub OAuth APP 등록

image [ 그림 1 ]

Settings/Developer settings 에서 [ 그림 1 ] 의 OAuth Apps 에서 Github OAuth APP 을 생성할 수 있습니다.

[Java] Wrapper Class, Boxing, Unboxing

기본형 타입 (int, boolean 등)을 참조형 타입으로 나타낸 것이 Wrapper Class 이다. 기본형 변수를 객체로 표현할 때 사용한다. 이 때 기본형 타입을 Wrapper Class 로 변환하는 과정을 Boxing 이라 하고 그 반대 과정을 Unboxing 이라 한다.

image [ 그림 1 ]

// Boxing (int to Integer) 
Integer i = Integer.valueOf(1); 

[Spring MVC] @RequestBody 동작 원리 [1] - Http Message Converter

@RequestBody 는 클라이언트 측에서 보낸 데이터를 (Java) 오브젝트로 만들어주는 역할을 담당한다. 이번 글에서는 직렬화 / 역직렬화의 개념과 Spring MVC 에서 직렬화 과정을 지원하는 Http Message Converter 에 대해 다룰 예정이다.


| 직렬화 / 역직렬화

본론을 다루기 전에 먼저 배경 지식인 직렬화 / 역직렬화 에 대해서 간단히 이해하고 넘어가보자.

image

[Java] How is a Java Program executed [3-1] JVM 구성 요소 - Runtime Data Area

지난 글에서는 JVM 의 구성 요소 중 .class 파일을 읽어 메모리의 메서드(Method) 영역에 로드하는 클래스 로더에 대해 알아봤다. 사실 클래스 로더에서 다룬 글에서 이미 오늘 다룰 메모리에 관한 내용이 포함되어 있었는데, 이번 글에서는 JVM 메모리에 대해 보다 자세히 다룰 예정이다.

실행 파일 형태의 프로그램이 실행 중 상태에 있을 때 우리는 이를 프로세스(Process) 라 부른다. 이를 또 메모리 관점에서 설명하면 메인 메모리(RAM)에 프로세스가 올라가있는 상태로도 설명할 수 있다.

image

[ 그림 1 ]

[ 그림 1 ] 는 프로세스가 메모리에서 어떻게 관리되는지를 보여준다. 여기서 말하고 싶은 핵심은 프로그램이 실행될 때 메모리에서 해당 프로세스를 관리하기 위해 여러 정보들이 올라가 있다는 점이다.

[Java] How is a Java Program executed [2-1] JVM 구성 요소 - Class Loader

지난 글에서는 JVM 과 실행 및 개발 환경과 관련해 JRE, JDK 을 순서대로 알아봤다.

image

[ 그림 1 ]

이번 글에서는 JVM 의 구성 요소 세 가지 중 하나인 클래스 로더를 다룰 예정이다. 참고로 JVM 은 [ 그림 1 ] 에서 볼 수 있듯이 클래스 로더 시스템 + 런타임 메모리 영역 + 실행 엔진으로 구성되어 있다.


[Java] How is a Java Program executed [1] - JVM, JRE, and JDK

자바로 작성된 프로그램은 어떻게 실행될까? JVM 을 중심으로 앞 질문에 대한 답을 알아가보자.

| JVM (Java Virtual Machine)

image

[ 그림 1 ]

JVM(Java Virtual Machine) 는 자바로 작성된 프로그램이 돌아가도록 하는 프로그램이다. 개발자가 이해할 수 있는 수준의 .java 파일을 컴파일 하면 .class 가 생성되는데, 컴파일 이후부터는 이를 바이트 코드라고 한다. 이 바이트 코드는 JVM 위에서 동작한다.

[MySQL] Index [3] - Index(B+Tree) 특징 및 Index 사용 관련 고려사항

이전 글에서 Index 자료 구조 중 하나인 B+Tree 를 다뤘다. 이번 글에서는 B+Tree 기반의 Index 가 가지는 특징과 사용 시 고려할 점들에 대해서 다룰 예정이다.


B+Tree 연산 (Insertion, Deletion, Search)

insert, update, delete (Command)의 성능을 희생하고 대신 select (Query)의 성능을 향상시킵니다.