부트캠프

[우테코 - 1주차] 10.15 작업 환경 설정 및 기능 구현 명세서 작성

planting grass 2024. 10. 16. 00:51
728x90

1주차

10.15(화) 작업 환경 설정 및 기능 구현 명세서 작성

1. 준비

1) 작년 우테코 살펴보기

  • 우아한테크코스는 15시에 문제가 공개되기 때문에 그 전 시간동안 작년 6기때 나온 문제들을 둘러봤다.
    • 간단하게 baseball 문제를 보고 깡으로 구현을 해보았다.
  • 이후 남는 시간에 합격 후기나 다른 사람들은 어떻게 우테코 프리코스를 했는지 살펴보았다.
    • 기억에 남는 사람들이 몇몇 있어서 보니 결과가 전부 다 합격이었다.
    • 나 역시 이 정도보다 더 노력하고 몰입해야겠다고 생각했다.

2) 프리코스 과제 가이드를 읽어봤다.

woowacourse-docs/precourse at main · woowacourse/woowacourse-docs

 

woowacourse-docs/precourse at main · woowacourse/woowacourse-docs

우아한테크코스 문서를 관리하는 저장소. Contribute to woowacourse/woowacourse-docs development by creating an account on GitHub.

github.com

  • 간단하게 정리하면 아래와 같다.
    1. 프로젝트를 자신의 계정으로 fork하기
    2. fork한 저장소를 자신의 컴퓨터로 clone하기
    3. 기능 구현을 위한 브랜치 생성
      • 브랜치는 아래처럼 2개를 생성할 예정이다.
        1. 제출을 위한 브랜치
        2. 연습을 취한 브랜치
    4. 통합 개발 환경(IDE)으로 가져오기
      • 기존 사용하던 인텔리제이 IDE를 사용할 예정이다.
    5. 기능 구현
      • 처음부터 MVC 패턴으로 코드를 짜면 좋으나 아직 익숙치 않아서 Application에 통째로 구현 후 차근 차근 나눠서 MVC 패턴으로 짤 예정이다.
    6. 기능 구현 후 add, commit
      • gitkraken을 사용할 예정이다.
    7. 본인 원격 저장소에 올리기
    8. github 서비스에서 Pull Request를 보내기

3) 스터디 들어가기

  • 디스코드에서 스터디를 많이 구하기에 들어갔다.
  • 이번 프리코스를 통해 다른 개발자들은 어떻게 하는지 살펴보고 의사소통을 많이 나눠볼 예정이다.
  • 되도록이면 다양한 사람들과 교류해보고 싶다.

2. 몰입

1) 환경 설정

  • JDK가 작년과는 다르게 21버전을 사용한다고 한다.
    • 이에 인텔리제이도 23년도 버전이기 때문에 최신 버전으로 업데이트 해야 했다.
    • 기존에 JDK는 21버전을 설치해 두었기 때문에 설치하지 않아도 되었다.
    • 다만 JDK 버전이 다양하기 때문에 버전을 관리할 겸 .bat 파일로 간단하게 교체 가능하게 했다.
      • 배치 파일로 자바 버전별로 간단하게 사용 가능하게 할것이다.
      • 메모장에 아래 코드를 입력해서 .bat으로 저장해주면 된다.
        @echo off
        set JAVA_HOME=[JDK경로]
        set Path=%JAVA_HOME%\bin;%Path%
        echo Java [버전] activated. java --version
    • 인텔리제이를 최신버전으로 업데이트 한 뒤 Ctrl + Alt + Shift + S를 눌러 JDK 설정을 바꿔줬다.

한글 깨짐 문제를 방지하기 위해 Ctrl + Alt + S를 눌러 설정을 바꿔줬다.

  • Build and run using: Intellij로 변경
  • Run test using: Intellij로 변경

2) 깃 설정

  • Git bash나 Gti Kraken은 따로 설정을 건들일 필요는 없어서 패스했다.
    • 깃 브랜치로 닉네임인 lold2424과 practice를 생성했다.
      • practice는 이것저것 연습용으로 사용할 예정이다.
      • lold2424 브랜치에 최종으로 올릴것!
    • 이후 Docs 폴더가 없어서 만들고 README.md도 추가해 줬다.

3) 요구사항 명세서 작성

  • 요구사항 명세서를 코드를 짜기전에 우선 작성해보려 한다.
    • 어떠한 기능을 구현해야할지 생각해보았다.
    • 💡기능 요구 사항
      • 입력한 문자열에서 숫자를 추출하여 더하는 계산기를 구현한다. 쉼표(,) 또는 콜론(:)을 구분자로 가지는 문자열을 전달하는 경우 구분자를 기준으로 분리한 각 숫자의 합을 반환한다.
        • 예: "" => 0, "1,2" => 3, "1,2,3" => 6, "1,2:3" => 6
      • 앞의 기본 구분자(쉼표, 콜론) 외에 커스텀 구분자를 지정할 수 있다. 커스텀 구분자는 문자열 앞부분의 "//"와 "\n" 사이에 위치하는 문자를 커스텀 구분자로 사용한다.
      • 예를 들어 "//;\n1;2;3"과 같이 값을 입력할 경우 커스텀 구분자는 세미콜론(;)이며, 결과 값은 6이 반환되어야 한다.
      • 사용자가 잘못된 값을 입력할 경우 IllegalArgumentException을 발생시킨 후 애플리케이션은 종료되어야 한다.
  • 크게 3가지 방향으로 생각했다.
    1. 덧셈할 문자열 입력
    2. 커스텀 구분자 분리
    3. 덧셈 실행 및 결과 출력
  • 이후 각각 어떤 예외 처리를 해야할지 고민을 했다.
  • 처음에는 간단하게 생각했으나 나중에는 실수도 포함해서 계산기를 설계해야 하는지 아니면, 정수로만 계산해야 하는지도 생각했다.
    • 이건 너무 과하다는 생각이 지금은 든다…

3. 느낀 점

1) 나와 다른 개발자들은 어떤 생각을 하는가

  • 디스코드라는 커뮤니티에서 많은 사람들이 모였다.
    • 사소한 잡담부터, 개발환경 팁, 어떤 생각으로 프리코스에 임할지 등 다양한 의견이 나왔다.
    • 스터디에서는 좀 더 많은 대화를 나눌 수 있었다.
    • 1주차 과제가 끝나지 않아 아쉽게도 자세한 대화를 할 수 없었다.
      • 그럼에도 다른 개발자들은 어떤 방식으로 개발하는지 MVC 패턴은 자신은 View 중심적인지 Model 중심적 개발인지 등 어떤 사고방식을 갖고 있는지 상세하게 알 수 있었다.
      • 확실히 다른 사람들을 만나 의사소통을 하니 다방면에서 내가 개발자로서 성장할 수 있을 것 같다.
  • 오프라인 스터디도 있었는데 아쉽게도 서울에 거주하고 있지 않아 슬펐다.

졸업 시기도 다가오고 취업준비는 해도해도 끝이 없어서 지쳐가고 있는 요즘, 목표를 확실하게 잡은거 같다.

프리코스 기간이 끝나고 나서 시작할때 보다 조금 더 성장한 개발자가 되어 얻어가는것이 있으면 좋겠다.

728x90