본문 바로가기

생각정리10

[2021.03.24] 우아한테크코스 한 달 생활기 글을 쓰는 지금은 이미 한달을 훌쩍 넘겨 '1.8개월 생활기'가 아닌가 하는 의문이 생기는 시점입니다. 2월에서 3월로 숫자가 하나만 증가했으니 어쨋거나 '한 달 생활기'라고 우기면서 시작합니다! 0과 1에 의해 시작한 OT 우아한 테크코스 3기 합격소식을 들었을 때만 해도 "OT를 온라인으로 할리가 없지" 라고 생각했습니다. 방을 깔끔하게 준비하고 모니터앞에 안아서 줌을 켜기 전까지 말입니다. 태어나서 처음 세상을 볼때도 이렇게 수줍었을까요? 난생 처음 캠을 켜고 초록빛이 켜져있는 노트북앞에 수줍게 앉았습니다. 네 맞습니다. 모든게 어색해요. 0과 1에 의해 표시되는 모니터에 자신의 표정을 봤습니다. 선글라스만 끼워주면 바로 영화 매트릭스의 주인공 네오와 싸우러가기에 딱이었습니다. 얼음만 깬다면서요.... 2021. 3. 26.
[기술면접 시리즈] 자바의 컴파일 과정(JVM 메모리 구조) 자바의 컴파일 과정은 클래스 파일을 생성하고 JVM 에서 바이트코드를 기계어로 변환해 메모리상에 배치되어 우리가 만든 코드를 수행합니다. 라고 설명할 수 있지만 아직 조금 부족한것 같습니다. JVM을 이해하면 자바의 메모리 구조에 대해 알고 메모리를 효율적으로 사용할 수 있게됩니다. 그래서 좀 더 자세히 정리해서 적어보겠습니다. JVM이란? 자바언어는 운영체제에 독립적입니다. 기존의 언어는 운영체제에 맞게 개발된 프로그램을 다른 종류의 운영체제에 적용하려면 많은 노력이 필요합니다. 하지만 자바는 Java 애플리케이션과 OS(운영체제 Window, Linux, Macintosh 등) 사이에 JVM(자바가상머신)이 .java의 바이트 코드를 해당 운영체제가 이해할 수 있는 기계어로 변환하여 전달합니다. JV.. 2020. 8. 3.
[기술면접 시리즈] 시작. 첫 코딩테스트 얼마전 모 회사의 신입 채용에서 생애 첫 코딩테스트를 맛봤습니다. 누군가 본다면 넘볼 수 없는 곳에 시험보러 간다고 할 지 모르지만 그래도 일단 깨지고 부서져봐야 제가 어디 쯤 위치해 있는지 알 수 있다고 생각했습니다. 이 생각의 좋은 점은 긴장감 1도 없이 시험을 칠 수 있다는 겁니다. 기대가 있어야 실망도 큰 법이라는 말이 있는데 정말 기대가 없으니 실망도 없었습니다. 대신 제 현재 위치에 대한 절망은 있었습니다. 첫 코딩테스트의 첫 알고리즘 문제를 풀면서 들었던 생각은 "문제가 생각보다 쉬운데?" 였습니다. ( 물론 뒤로 갈 수록 조금씩 어려워 지긴했습니다. 이번 테스트의 진짜는 나중에 나오는 서술형 테스트가 인것같습니다. ) 너무 쉬웠기에 '함정이 있지않을까' 라고 생각해서 최대한 .. 2020. 8. 3.
자료 구조 (Data-Structure) 데이터 단위와 자료구조 Array and LinkedList Stack and Queue Sort 데이터 단위와 자료구조 데이터 단위 - 데이터를 구성하는 한 덩어리 라고 생각하시면 됩니다. 자료구조(data-structure) - 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는것을 말합니다. Array and LinkedList Array 가장 기본적이고 간단한 자료구조인 Array는 논리적 저장 순서와 물리적 저장 순서가 일치합니다. 인덱스(Index) 라는 정수형 값으로 특정 위치에 있는 배열의 요솟값에 접근할 수 있습니다. 따라서 찾고싶은 요솟값의 인덱스값을 알고있다면 O(1) 로 해당 요솟값에 접근할 수 있습니다. 하지만 삭제와 삽입에는 해당 인덱스의 값에서 뒤쪽에 있는 값들을 한칸씩 땡기.. 2020. 7. 30.
단위테스트의 필요성에 대해서 처음 스프링을 공부하며 JUnit을 이용한 단위 테스트를 할 때 항상 의문을 느꼈습니다. 이런식으로 테스트 하는게 무슨의미가 있지? 직접 애플리케이션을 실행해서 눈으로 보면서 기능을 테스트하는게 더 좋은거 아니야? 그냥 직접 실행해서 테스트한다음 깃허브에 Push 해도 되는데? 그래서 테스트 코드에 대해서는 공부하지않고 코드만 따라치고 넘겼습니다. 최근에 이동욱님의 책을 읽으며 본 테스트 코드의 장점에는 3가지가 있었습니다. - 빠른 피드백 - System.out.println() 을 통해 눈으로 검증하는것이 아닌 자동검증 가능 - 개발자가 만든 기능을 안전하게 보호 이것만 보면 아직 어떤 장점인지 와닿지 않습니다. 1. 빠른 피드백 단위 테스트 코드를 작성함으로써 얻는 이점에 대한 위키디피아의 글입니다.. 2020. 7. 24.