분류 전체보기

    [우아한테크코스 4기] 3주차 회고 - 가까워지기

    [우아한테크코스 4기] 3주차 회고 - 가까워지기

    다시 페어 프로그래밍 자동차 경주 미션이 무사히 끝나고 로또 미션이 시작되었다. 페어 매칭 하루 전날 밤 게더에 모인 크루와 함께 의식을 치렀다. 신기하게도 데일리 미팅 팀 안에서만 2팀의 페어가 만들어졌고, 다들 좋은 페어를 만났다고 후기를 들었다. 나 역시 좋은 페어를 만났다. ‘코린’이라는 페어였고 실력은 코린이가 아니었다. 역시나 페어 프로그래밍을 하기 전 코린과 대화를 나누면서 여러 가지 TMI들을 주고받았다. 일부러 아이스브레이킹을 길게 가져갔는데 다행히 코린도 재밌게 받아주어서 편안한 분위기에서 프로그래밍을 시작할 수 있었다. 아쉽게도 오프라인으로 할 수 있는 상황이 되지 못해 온라인으로 진행하기로 했다. (오히려 좋아... 왕복시간만큼 코딩 가능) 프로그램의 설계를 하면서 큰 의견 차이는 ..

    [JUnit] @ParameterizedTest - @MethodSource 사용하기

    [JUnit] @ParameterizedTest - @MethodSource 사용하기

    들어가며 이전에 'Parameterized Test - 테스트를 효율적으로'라는 글을 올렸었는데 전부 학습한 내용이 아니라서 이번에 사용한 기능을 추가로 포스팅하려고 합니다. 이전에 다뤘던 테스트는 클래스, 문자열, 기본 타입, Enum, Csv를 사용한 테스트였습니다. 하지만 좀 더 복잡한 객체들을 파라미터로 테스트할 수 있는 방법이 있습니다. 테스트 코드를 예시로 보면서 설명하겠습니다. 로또 번호를 맞추는 테스트이고 맞힌 숫자에 따라 등수를 반환합니다. (실제 로또와 같은 원리로 동작하는 코드입니다.) private static final Number BONUS = new Number(7); private static final Lotto LOTTO = new Lotto(givenNumbers(1, ..

    슬랙(Slack)에 깃허브(Github) 알림 연동하기

    슬랙(Slack)에 깃허브(Github) 알림 연동하기

    들어가며 이번에 이펙티브 자바 스터디에 참여하게 되었는데 슬랙으로 깃헙 알림을 받도록 설정을 했습니다. 슬랙에서 깃허브에 있는 특정 레포지토리에서 PR, 이슈 등 알림을 받을 수 있습니다. 설정하는 방법은 간단합니다! Github app 설치하기 Github app이 설치되어 있지 않다면 설치를 해야합니다. 왼쪽 상단 더보기를 눌러 앱을 선택해줍니다. 아마 개발자 슬랙방이라면 이미 설치되어 있을 가능성이 높습니다. 설치되어있다면 다음 레포지토리 연동 부분부터 보시면 됩니다. 추가 버튼을 눌러주며 엑세스 권한을 설정에 맡게 허용하면 됩니다. 레포지토리 연동하기 알림을 받길 원하는 채널로 이동합니다. Github 앱이 올바르게 설치되었다면 채팅창에 /github 명령어를 사용할 수 있습니다. /invite ..

    [우아한테크코스 4기] 2주차 회고 - 선택과 집중

    [우아한테크코스 4기] 2주차 회고 - 선택과 집중

    온보딩 기간 끝 진짜 시작! 2주 차가 되면서 우테코 생활에 적응이 되고 있다. 직장인은 아니지만 10시에 데일리 미팅으로 하루를 시작하고 크루들을 만나다 보니 소속감이 생겼다. 보이는 라디오가 무사히 끝났고 다음 주부터는 이펙티브 자바와 객체지향 디자인 패턴 스터디를 하면서 더 바쁜 하루가 시작될 거 같다. 이번 주에 느낀 감정을 간단하게 적어보고자 한다. 보이는 라디오 기대했던 대로 성공적으로 라디오를 끝냈다. 발표 전 긴장을 푸는 방법도 터득했다. 혼자 호호호 호탕하게 웃고 나니 긴장감이 싹 사라진다. 다른 크루에게도 추천하고 싶은 방법이다. 처음엔 이걸 왜 시키나 했지만 끝나고 나서 뒤돌아보니 생각이 달라졌다. 결론적으로 우테코를 따라가도 되겠다는 믿음(?)이 생겼다. 우선 새로운 크루들과 친밀감..

    [오브젝트 3장] 역할, 책임, 협력

    [오브젝트 3장] 역할, 책임, 협력

    Chapter 03 역할, 책임, 협력 객체지향 패러다임 관점에서 핵심은 역할, 책임, 협력이다. 애플리케이션의 기능을 구현하기 위해 수행하는 상호작용을 협력이라 한다. 협력에 참여하기 위해 수행하는 로직은 책임이다. 객체들이 협력안에서 수행하는 책임들이 모여 객체가 수행하는 역할을 구성한다. 협력 자동차 게임에서 자동차는 지정한 숫자보다 크면 앞으로 전진하고 작으면 멈추는 간단한 프로그램을 개발해보자. 그럼 다음과 같이 구현할 수 있다. public class Car { private int position; public Car(int position) { this.position = position; } public int getPosition() { return position; } public v..

    [Java] package, import

    [Java] package, import

    👨‍💻 package 키워드 패키지란 폴더 또는 디렉터리를 의미한다. 자바에서 패키지란 관련된 인터페이스나 클래스를 적절히 배치할 수 있도록 만든 폴더 또는 디렉터리 API에서 제공되는 많은 클래스들이 패키지화되어 제공되고 있다. 자바 소스 파일에서 이 파일의 클래스나 클래스들이 속하는 패키지는 package와 함께 지정된다. 이 키워드는 일반적으로 소스 파일에서 처음 오는 키워드이다. 하나의 패키지 선언을 소스 파일에 선언할 때에는 다음과 같이 할 수 있다. package java.awt.event; 패키지 안에는 같은 이름의 클래스를 사용할 수 없으며 패키지가 다르면 상관없다. 패키지명은 관례에 따라 소문자로 작성한다. 그 외에도 몇 가지 규칙이 존재한다. 숫자로 시작할 수 없다. _ $ 문자를 제외..

    [오브젝트 1, 2장] 객체, 설계, 객체지향 프로그래밍

    들어가며 객체지향의 오해와 진실의 심화 버전이라는 느낌이 드는 책입니다. 객체지향에 대해 잘 모르거나 고민을 하고 있다면 오브젝트는 사이다가 되어줄 책인 것 같습니다. 모든 내용을 블로그에 정리하지는 않습니다. 새롭게 알게 된 지식이나 중요하다고 생각하는 부분을 기록한 것이기 때문에 더 자세한 내용은 반드시 책을 읽어보는 것을 추천드립니다. Chapter 01 객체, 설계 의존성은 설계를 어렵게 만든다. 불필요한 의존성을 제거하고 캡슐화를 통해 객체 사이의 결합도를 낮춘다. 객체의 자율성을 높이고 응집도 높은 객체들이 협력하는 것이 훌륭한 객체지향이다. 단순히 출력을 위한 메서드가 아니라면 get() 메서드를 의식적으로 사용하지 말아 보자. get() 메서드는 의존성을 높이고 책임을 넘기게 된다. 객체 ..

    [우아한테크코스 4기] 1주차 회고 - 나의 색깔 찾기

    드디어 시작! 이번 주부터 우테코 생활이 시작되었다. 새로운 사람들과 새로운 추억을 만들 생각에 위테 코를 시작하기 전부터 설렜다. 새로운 사람들을 만나면 늘 미래를 생각한다. 지금은 어색하지만 몇 주가 지나면 친해진 사이가 될걸 알기에 어색한 상황이 즐겁다. 정적과 어색함을 싫어하지 않지만 기존 팀과 보이는 라디오 팀, 페어까지 만나다 보니 예상했던 것보다 많은 크루들을 만났고 그 과정에서 기가 상당히 나갔다.게다가 스크럼은 오전 10시에 시작하는데 평소 11시에 일어났던 나에겐 오전 스크럼이란 잠을 깨는 시간이다. 크루들의 소개가 이어지고 질문을 할 수 있었지만 멍한 시간이 많아 입을 다물고 있었다. 다음 주부터는 시간에 적응도 했으니 차차 입방정을 떨 예정이다.1주 차는 여유로울 줄 알았지만 시작부..

    [JUnit] Parameterized Test - 테스트를 효율적으로

    [JUnit] Parameterized Test - 테스트를 효율적으로

    들어가며 특정 메서드의 결괏값을 확인할 때 반복문을 사용하거나 여러 개의 단위 테스트를 만들어 엣지 케이스와 올바른 값을 확인합니다. 하지만 하나의 테스트에서 진행할 수 있는 방법이 존재합니다. 예를 들어 소수 값을 확인하는 메서드가 다음과 같습니다. public class Numbers { public static boolean isOdd(int number) { return number % 2 != 0; } } 소수를 테스트 하기위해 여러 테스트를 만들거나 반복문을 사용하지 않고 다음과 같이 테스트가 가능합니다. @ParameterizedTest @ValueSource(ints = {1, 3, 5, -3, 15, Integer.MAX_VALUE}) // six numbers void isOdd_Sho..

    [zsh] zsh alias - 단축키 만들기

    [zsh] zsh alias - 단축키 만들기

    zsh alias 추가하기 특정한 디렉터리에 들어가기 위해 cd Desktop/code/... 를 매번 입력해서 들어갔다면 이 글은 아주 유용할 겁니다. 단축키를 만들어 사용하는 방법에 대해 소개하겠습니다. . zshrc 파일 편집하기 vi ~/.zshrc alias 추가하기 파일 아래쪽으로 내려가다 보면 다음과 같은 라인을 만나게 됩니다. (대문자 G를 입력하면 가장 마지막 라인으로 커서가 이동합니다.) # Example aliases # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" 예시처럼 alias를 등록하면 됩니다. i를 눌러 INSERT 모드로 변환해주세요. 그다음 원하는 명령어를 형식에 맞게 추가해주세요. alias ..