study


  • [우아한테크코스 6기] 6주 차 회고

    산 넘어 산이라고 하던가… 블랙잭이 끝나니 더 어려운 미션이 면전에 나타났다. 체스를 구현하는 것이었는데, 특수룰이 없는 일반적인 체스 룰을 사흘만에 구현해내야 했다. 덕분에 화수목이 싹 날아간 느낌이지만 회고는 회고대로 써 봐야지. 이번 주도 잘 지냈다! 👌😉 💬 설계의 중요성 사다리 – 블랙잭으로 이어지는 두 개의 미션에서 구조를 엎었던 일이 잦았다. TDD랍시고 멀리서 바라보기, 큰 단위에서 작은 단위로 쪼개 나가기를 연습한다고 나름 생각했다. 하지만 모든 것의 전제는 설계가 잘 되어 있을⋯


  • [우아한테크코스 6기] 5주 차 회고

    이번 주는 내내 블랙잭에 빠져 살았다. 블랙잭에서 생각했던 내용들은 블랙잭 회고에 적어 두었으니, 이번에는 생활에 대해서 조금 더 자세히 적어보려고 한다. 그래도 아마 거의 미션 관련된 것 같지만… 일단 출발해 보자고 🏄🏻‍♂️ 이번 주의 가장 큰 수확은 JDK다. 초창기부터 있었던 제육-돈까스-국밥 밈이었는데, 이걸 짤로 만들어서 슬랙의 이모지가 되었다. 배고프면 이제 이걸 고르면 되나 싶다ㅋㅋ🙄 만들면서 JDBC는 뭐로 만드나 이야기도 했었는데, 족발-닭발-보쌈-추어탕이었나? 기억이 잘 나질 않는다ㅋㅋ 🧠 매주 월요일, 소프트스킬 피드백⋯


  • Git submodule로 활동 기록 정리하기

    프로젝트를 진행할 때 다른 프로젝트를 활용해야할 때가 있다. 이 경우 가져다 쓰는 프로젝트를 Git을 통해 관리하지 않고 서브모듈submodule을 사용해 불필요한 코드의 업로드를 최소화하는 방법이 있다. 이 글에서는 서브모듈을 활용해서 여러 레포지토리에 분산되어 있는 활동들을 한 곳에 모아보는 방법을 소개한다. 가장 처음 떠오르는 것은 아카이브 저장소를 만든 다음, 그 레포지토리에 지금까지 활동한 것을 다시 Git을 통해 관리하는 것이다. 한땀한땀 폴더를 복사/붙여넣기한 뒤에 관리할 수 있겠다. 이 경우, 본래 저장소와 아카이브 저장소에⋯


  • [우아한테크코스 6기] 블랙잭 미션 회고

    우여곡절 끝에 블랙잭 미션 2단계가 머지됐다🎉 2단계를 진행할 때, 책임 분배가 잘못되었음을 깨닫고 다시 엎는 일이 두 번이나(…) 있었다. 테스트 못지않게 단단한 설계가 선행되어야 한다는 것을 알게 되었던 미션이었다. 이번 글에서는 내가 고민했던 부분을 위주로 작성하고자 한다. 코드에 의도를 담자 매번 의식하려고 노력하지만 잘 되지 않는 부분이다. 이번에는 코드 한 줄 쓸 때마다 내가 어떤 생각을 가지고 타이핑했는지 돌아보았다. 왜 private으로 닫았는지, 왜 package-private으로 열었는지와 같은 생각, 메서드 이름을 어떻게⋯


  • [우아한테크코스 6기] 4주 차 회고, 블랙잭 1단계

    보통은 많은 시간이 지나고 나면 ‘한 것도 없는데 시간이 많이 갔다’고들 하는데… 그런 말은 못 하겠다. 앞선 4주는 정말 밀도있는 시간을 지냈다. 새로운 일들이 계속해서 등장하니 적응하는 데 걸리는 시간도 있었겠다. 특히나 이번 주는 기록에 시간을 많이 못 들여서 아쉽다. 여전히 느끼는 것이지만, 딱 맞아떨어진다면 40분이면 도착하는 거리를 불확실한 대중교통 때문에 한 시간넘게 불안해야 하는 게 참 아쉽다. 괜히 직장인들이 자차를 타고 다니는 게 아닌 것 같기도.. 또 차 막히면⋯


  • Garbage Collection in Java Hotspot VM

    C, C++와 같은 언어에서 동적 할당을 해 본 적 있는가? 동적으로 메모리를 사용할 때 반드시 지켜야 하는 사항, 배울 때 귀에 딱지가 얹도록 들었던 말이 바로 얻어온 메모리를 OS에 다시 돌려주는 것이다. 제때 반환하지 않으면 OS로부터 동적으로 할당받을 수 있는 메모리가 줄어들게 된다memory leak . 최악의 경우에는 OS가 더이상 메모리를 더이상 할당해주지 못해 프로그램이 뻗어버리는 상황이 발생할 수 있다. 🤯 초심자들의 통곡의 벽이었던 포인터와 동적 할당을 Java에서는 걱정할 필요가 없다.⋯


  • Java Virtual Machine: 가상화는 무엇일까

    JVM 문서를 읽으면서 정리하는 글. Virtual Machine이라는 단어가 조금은 생소할 지 몰라도, 글을 읽음으로써 개념을 이해하는 데에 목적을 둔다. Java 프로그램이 실행되는 가상 머신이라는 무대는 무엇일까? 왜 가상화를 해야 했을까? 라는 질문을 스스로 던지면서 읽으면 더 도움이 되겠다! Virtualization? 가상화란 무엇일까? 라고 생각해 보면, 존재하지 없는 무언가를 만들어내는 느낌이다. 실제로 하드웨어 플랫폼, OS 등을 가상으로 만들어 그 위에서 어플리케이션이나 다른 OS와 같은 레이어를 얹을 수 있도록 한 것이다. 그 중에서도⋯


  • [우아한테크코스 6기] 3주 차 회고, 사다리 게임

    본격적으로 3주 차가 되면서 익숙해진 것 같지만서도 여전히 교통은 어렵다. 분명 10분 일찍 도착했는데도 엘리베이터 줄 때문에 계단을 타는 날이 있나 하면, 5분 남았을 때 운 좋게 바로 올라갈 수 있었던 적도 있다. 출석폼을 제출하는 것도 까먹을 뻔한 날이 종종 있었지만 이젠 엘리베이터 기다리면서 미리 열어두는 것도 생활에 적응한다는 것이겠지 🏄🏻‍♂️ 월요일 1시 출근은 진짜 너무 좋다. 주말동안 어지럽혀진 생체 리듬을 돌리는 데 에어백이 되어 주는 듯. 월요일에는 오자마자 다들⋯


  • [우아한테크코스 6기] 2주 차 회고

    저번 주까지만 해도 연극 준비가 머리에 가득했다. 생각보다 바쁘지는 않았지만 바쁜 것만 같은 나날이 지나갔다. 주말에도 열심히 연극을 준비하고, 외우지 못한 대사는 그때 가서 다시 떠올리는 것으로 하고… 월요일에는 1시에 출근하는 날이라 비교적 여유롭게 준비할 수 있어 좋았다. 2시부터 곧바로 연극이 시작되는 바람에 다시 휘몰아쳤지만… 🤸🏻‍♂️🤸🏻‍♀️ 연극, 브리+네오조 회식 연극은 정말정말 재미있었다. 다들 웃고 박수치느라 정신이 없었다. 팀마다 처음 보는 사람들과 일주일간 호흡을 맞춰나가면서 재미있는 연출을 보여줬다. 특히 이번 기수에서⋯


  • 들여쓰기 단계를 지키면서 예외 발생 시 재시도하는 방법

    우아한테크코스 프리코스와 본 과정 미션에서는 다양한 요구사항을 만족하는 프로그램을 작성해야 한다. 이번 프리코스에서도 고민을 많이 했었던 부분이 예외 발생 시 재시도하는 것이다. 대부분 while을 통해 입력받는 부분을 작성하거나, 재귀로 작성하기도 한다. 우테코 미션의 기본 프로그래밍 요구사항은 들여쓰기를 한 번만 하는 조건이 기본적으로 붙어 있다. 유연한 코드를 의식적으로 만들어내게 하기 위한 하나의 장치라고 생각한다. 메서드 내에서의 두 번 들여쓰기는 이 요구사항을 위반하므로 메서드를 분리하거나, Stream 등을 활용해 줄여볼 생각을 하는 것이⋯


Categories