코드 리뷰 & 피드백
·
우테코 7기/1주차
❐ Description1주차 피드백을 정리하자.PR link     ❐ Code Review자신의 아이디러를 멋지게 표현한 코드들을 리뷰 하면서 정말 많은 것들을 경험할 수 있었다. 특히, 아키텍쳐 능력이 뛰어난 분도 여럿 본거 같다. 내가 받은 피드백을 정리해보았다.  Reviewer : 20HyeonsuLee & songsunkook & NaMinhyeok & phk1128  #️⃣ 책임이 많은 도메인 설계feedback linkfeedback commit link : TODOSeparateManager가 많은 책임을 가지고 있는게 아닌가요? 라는 피드백을 받았다.SeparateManager가 문자열을 분리하고, 커스텀 구분자를 추출하는 역할까지 하고 있었다. 최대한 책임을 덜어냈다고 생각했지만..
메소드 파라미터에 final 사용하기
·
우테코 7기/1주차
❐ Description1주차 과제 제출 후 코드 리뷰 과정에서 파라미터에 final을 선언하는 코드를 봤다.그래서 왜 선언하는지 정리해보려고 한다.     ❐ Call by value & Call by reference1. Call by valuecall by value는 메서드에 인자로 전달된 값의 복사본이 메서드에 전달된다는 것을 의미한다. 즉, 메서드 내에서해당 파라미터를 변경해도 원래 값에는 영향을 미치지 않는다. 자바는 Call  by value 방식을 채택한 언어이다. public class Main { public static void main(String[] args) { int original = 10; modifyValue(original); ..
자동차 경주
·
우테코 7기/2주차
❐ Description과제 기한2024.10.22(화) 15:00 ~ 2024.10.28(월) 00:00과제 진행 Branchhttps://github.com/Gilbert9172/java-racingcar-7과제 제출 PR 링크https://github.com/woowacourse-precourse/java-racingcar-7/pull/53Git conventionhttps://gist.github.com/stephenparish/9941e89d80e2bc58a153#file-commit-md     ❐ Requirements1. User경주할 자동차 이름을 입력할 수 있다.1개 이상구분은 쉼표(,)로 한다.이름은 5자 이하만 입력할 수 있다.이동 횟수를 입력할 수 있다. 2. System자동차에는..
[JUnit5] 입력 값을 mockking할 수 있을까?
·
우테코 7기/1주차
❐ DescriptionController 테스트를 작성하기 위해서는 사용자의 입력을 mockking해줘야 한다.오늘은 사용자 값을 mockking해서 테스트를 작성하는 과정을 정리하고 그에 필요한 지식들을 정리하려고 한다.     ❐ 배경 지식From. 자바의 정석 Chap.151. 입출력이란?우선 자바의 입출력을 제대로 이해해야 한다.입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램 간의 데이터를 주고 받는 것을 의미한다. 자바에서 입출력을수행하려면, 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데 이것을 stream이라고 정의한다.자바에는 바이트 기반의 스트림과 문자 기반의 스트림이 있는데, 오늘은 바이트 기반의 스트림을 사용하게 된다. 2. 바이트 기반 스트림 (InputStream..
[Java] 객체를 복사해보자
·
우테코 7기/1주차
❐ Description프리코스를 진행하면서 Immutable 객체를 복사해서 사용해야 할 일이 있었고,작업 과정에서 알게된 내용을 정리하고 옛날에 공부했던 내용을 복습할까 한다.     ❐ Shallow & Deep1. Shallow얕은 복사는 객체를 복사할 때, 객체의 필드 값만 복사하는 방식이다. 즉, 기본 타입(예: int, double 등)은값 자체를 복사하지만, 참조 타입(예: 객체, 배열 등)은 참조 주소만 복사한다. 따라서 얕은 복사를 하면 복사된 객체와 원본 객체가 동일한 참조 필드를 공유하게 된다.만약 복사된 객체나 원본 객체에서 참조 타입 필드가 가리키는 객체를 변경하면, 다른 객체도 영향을 받는다. Arrays.copyOf() 메소드는 shallow copy를 수행한다.   2. D..
[Refactoring] Pattern을 캐싱하자
·
우테코 7기/1주차
❐ Description[Regex 뿌시기]에서 정규 표현식에 대해서 집중적으로 공부했었다.공부하면서 든 생각 🤔💭‣ 컴파일한 Pattern 객체를 캐싱해서 사용할까?물론 주어진 과제는 1회성 기능이기 때문에 캐싱이 필수적이지는 않지만, 나는 이 프로그램이 현재 많은사용자들이 사용한다고 가정하고 리팩토링을 진행해보려고 한다.     ❐ 캐싱을 하는 이유는?Java에서는 Pattern 클래스가 컴파일된 정규 표현식 객체를 나타내며, 이를 이용해 여러 번 패턴 매칭을 할 수 있다. 정규 표현식을 매번 컴파일하는 것은 성능상 비효율적일 수 있기 때문에, 한 번 컴파일된 Pattern 객체를 재사용하는것이 좋다. 다음과 같은 장점들이 있을 것 같다.  1. 성능 향상매번 새로운 정규 표현식을 컴파일하는 것은..
Regex 뿌시기
·
우테코 7기/1주차
❐ Description 프리코스 1주차에서 Regex로 개고생했다. 이제 나의 것으로 만들자.     ❐ Regex란?정규 표현식(regex, regular expression, rational expression)이란, 특정한 규칙을 가진 문자열을표현하는데 사용하는 formal_language이며 정규 표현식은 문자열의 검색과 치환할 때 사용될 수 있다.더보기더보기formal_language(형식 언어)란?특정한 법칙들에 따라 적절하게 구성된 문자열들의 집합정규 표현식이라는 문구는 일치하는 텍스트가 준수해야 하는 "패턴"을 표현하기 위해 특정한 표준의텍스트 syntax를 의미하기 위해 사용된다. 정규 표현식의 각 문자는 메타문자로 이해되거나 정규 문자로이해된다.    ❐ Regex 문자 - 기본 기호..
1주차 회고
·
우테코 7기/1주차
❐ Description1주차 작업 과정에서 느꼈던 점과 과제 후기를 작성한다.     ❐ Source code GitHub - Gilbert9172/java-calculator-7Contribute to Gilbert9172/java-calculator-7 development by creating an account on GitHub.github.com     ❐ Self - Review1. 설정 목표를  성실히 수행했는가? #️⃣ 최적화된 요구사항 분석 방법 찾기 1주차 요구 사항 분석은 사용자의 관점과 시스템의 관점에서 나누어서 분석을 진행했다. 관심사를 분리한방법으로 요구사항을 파악하니 명확한 구분감을 가지는 장점이 있었다. 이와 동시에 너무 명확하게 구분되다보니 추후 요구사항이 더 많아질 ..
문자열 덧셈 계산기
·
우테코 7기/1주차
❒ Goal프리코스 1주차 과제는 "입력한 문자열에서 숫자를 추출하여 더하는 계산기를 구현"하는 것이다.     ❒ Requirements1. 사용자문자열을 입력할 수 있다.어떤 문자열이든 입력할 수 있다.빈 문자열을 입력할 수 도 있다.기본 구분자를 포함하여 입력할 수 있다.기본 구분자란 쉼표(,) 또는 콜론(:)을 의미한다.문자열 앞뒤 어디든 위치할 수 있다.커스텀 구분자를 포함아여 입력할 수 있다.커스텀 구분자란, // 와 \n 사이에 위치하는 구분자를 의미한다.문자열 바로 앞에 작성해줘야 한다.출력(덧셈) 결과를 콘솔에서 확인할 수 있다. 2. 시스템주어진 문자열에서 숫자만 파싱해야 한다.0으로 간주하는 경우 사용자가 빈 문자열을 입력했을 경우추출한 결과가 비어있을 경우추출된 숫자들을 더해야 한..
README.md
·
우테코 7기
❒ Description내일(10.15 화요일)부터 우테코7기 프리코스를 시작한다. 그에 따라 필요한 몇 가지 준비를 전날 미리 해두려고 한다.     ❒ Java version 물로 최근에 Virtual Thread 기술을 탑재한 Java21이 나왔지만, 6기도 Java17을 썼기 때문에 17을 사용할 것 같다.  ※ [2024.10.15]나의 예상과 다르게 Java21이로 과제를 진행한다고 한다.보자마자 java21로 변경해주고, Intellij java compile도 21로 변경해줬다.     ❒ gradlew 1. Why?mac을 사용하는 경우 다음 에러가 발생한다.zsh: ./gradlew: bad interpreter: /bin/sh^M: no such file or directory 이 오..