분류 전체보기

    [우테코 프리코스] 3주차: 자판기

    🚀 기능 요구사항 반환되는 동전이 최소한이 되는 자판기를 구현한다. 자판기가 보유하고 있는 금액으로 동전을 무작위로 생성한다. 투입 금액으로는 동전을 생성하지 않는다. 잔돈을 돌려줄 때 현재 보유한 최소 개수의 동전으로 잔돈을 돌려준다. 지폐를 잔돈으로 반환하는 경우는 없다고 가정한다. 상품명, 가격, 수량을 입력하여 상품을 추가할 수 있다. 상품 가격은 100원부터 시작하며, 10원으로 나누어떨어져야 한다. 사용자가 투입한 금액으로 상품을 구매할 수 있다. 남은 금액이 상품의 최저 가격보다 적거나, 모든 상품이 소진된 경우 바로 잔돈을 돌려준다. 잔돈을 반환할 수 없는 경우 잔돈으로 반환할 수 있는 금액만 반환한다. 반환되지 않은 금액은 자판기에 남는다. 사용자가 잘못된 값을 입력할 경우 Illegal..

    [우테코 프리코스] 2주차: 자동차 경주 게임

    🚀 기능 요구사항 초간단 자동차 경주 게임을 구현한다. 주어진 횟수 동안 n대의 자동차는 전진 또는 멈출 수 있다. 각 자동차에 이름을 부여할 수 있다. 전진하는 자동차를 출력할 때 자동차 이름을 같이 출력한다. 자동차 이름은 쉼표(,)를 기준으로 구분하며 이름은 5자 이하만 가능하다. 사용자는 몇 번의 이동을 할 것인지를 입력할 수 있어야 한다. 전진하는 조건은 0에서 9 사이에서 무작위 값을 구한 후 무작위 값이 4 이상일 경우이다. 자동차 경주 게임을 완료한 후 누가 우승했는지를 알려준다. 우승자는 한 명 이상일 수 있다. 우승자가 여러 명일 경우 쉼표(,)를 이용하여 구분한다. 사용자가 잘못된 값을 입력할 경우 IllegalArgumentException를 발생시키고, "[ERROR]"로 시작하는..

    [우테코 프리코스] 백엔드 프로젝트 초기설정 (Mac OS)

    1. java 버전 변경 일단 우아한 테크코스에서는 java 8.0 (JDK 1.8) 버전을 사용합니다. 자바8이 설치되어있지 않으시다면 설치먼저 하셔야합니다. 1.1 Java 8 설치 (설치가 되어있다면 1.2로 넘어가세요) 아래는 다른 분의 링크입니다. 이 포스팅에는 자바설치하는 과정까지는 담지않을게요! https://gilu-world.tistory.com/72 OS X(맥 OS) - Java 다운로드 및 환경변수 설정(JDK 1.8 - 8u251) 자바 환경변수 설정 안녕하세요. 이번 글에서는 자바를 사용하기 위해 가장 먼저 해야 하는 JDK 환경변수를 맥 OS에서 설정하는 방법을 소개하도록 하겠습니다. 준비물 - JDK 파일 - 오라클 gilu-world.tistory.com 1.2 터미널 Ja..

    [우테코 프리코스] 1주차: 숫자 야구 게임

    🚀 기능 요구사항 기본적으로 1부터 9까지 서로 다른 수로 이루어진 3자리의 수를 맞추는 게임이다. 같은 수가 같은 자리에 있으면 스트라이크, 다른 자리에 있으면 볼, 같은 수가 전혀 없으면 포볼 또는 낫싱이란 힌트를 얻고, 그 힌트를 이용해서 먼저 상대방(컴퓨터)의 수를 맞추면 승리한다. 예) 상대방(컴퓨터)의 수가 425일 때 123을 제시한 경우 : 1스트라이크 456을 제시한 경우 : 1볼 1스트라이크 789를 제시한 경우 : 낫싱 위 숫자 야구 게임에서 상대방의 역할을 컴퓨터가 한다. 컴퓨터는 1에서 9까지 서로 다른 임의의 수 3개를 선택한다. 게임 플레이어는 컴퓨터가 생각하고 있는 3개의 숫자를 입력하고, 컴퓨터는 입력한 숫자에 대한 결과를 출력한다. 이 같은 과정을 반복해 컴퓨터가 선택한 ..

    타석증(침샘결석) 수술후기 (+전신마취)

    타석증 발견 사랑니 4개를 다 빼느라 치과에서 CT를 찍었는데 치과의사쌤이 타석증(침샘결석)이 의심된다면서 이비인후과를 가보라고 하셨습니다. 사랑니 발치의 고통을 머금고 동네 이비인후과에서 타석증 판정받고 대학병원에 제출할 소견서를 받았습니다.. 대학병원에서도 의사선생님이 혀밑에 손가락을 넣어서 만져보시고 있는것 같다고 CT도 찍고나서 타석증 판정 제대로 받았습니다. 침샘 깊숙히 있어서 자연치유는 어렵고 전신마취 후 제거할 것이라고 말씀하셨고 최대한 입 안쪽으로 제거할 거라고 하셨습니다. 수술 전 검사 전신마취를 하기위한 검사를 여러개 합니다. 피검사, X-ray, 소변검사 등등 하는것 같습니다. (피검사 한 날 팔운동 했는데 다음날 피멍들고 너무 아팠습니다... 저처럼 바보같이 피검사한날 팔운동 하는 ..

    [우테코] 4기 지원후기 + 1차합격 + 최종합격

    우테코 지원했습니다. 서류 질문이 5가지인데 사실상 4가지 항목의 자기소개서를 적습니다. 우테코 지원하고싶어서 작년부터 이 질문들에 대해 뭐라고 답할지 생각해놓고 있었습니다. 대부분의 답은 창업을 통해 변한 제 마음가짐과 개발공부방식입니다. 그리고 42서울에 참여했던 경험과 그 과정에서의 어려움, 또 무엇을 배웠는지도 적었습니다. 또한, 말뿐만이 아니라는 것을 증명하기 위해서 노션페이지를 따로 제작해 관련 증빙자료(블로그 글, 깃허브, 사진 등)을 정리했습니다. 1차 온라인 코딩테스트 일시 : 21.11.06 12시~16시 문제 수 : 7문제 쉽다. 쉽다. 쉽다. 처음에 못풀었다가 다시 고민해서 풀어냈다. 처음에 못풀었다가 다시 고민해서 풀어냈다. 한번에 풀긴했다. 놓칠만한 예외가 있었다. 마지막까지 겨..

    strlcat 반환값에 대한 고찰

    들어가며. 이 글은 42서울의 라피신 과정중 가장 고민했던 함수였던 strlcat에 대한 설명이고, 특히나 '반환값'에 대한 고찰이 담겨있습니다. strlcat에 대한 설명은 man strlcat 이나 다른 블로그에도 잘 설명이 되어있습니다. 참고하시길 바랄게요. 중간중간 이해하기 어려워도 끝까지 정독하신 후 또 다시 읽어보시고 궁금한 점이나 틀린 부분은 댓글남겨주시면 감사하겠습니다. 왜 이 글을 쓰는지? strlcat을 짜는 것은 어렵지 않았습니다. 하지만 제가 가장 어려웠던 것은 strlcat의 반환값을 왜 그렇게 짜야하는지, 반환값이 의미하는 바가 무엇인지가 가장 궁금했습니다. 그리고 공식문서와 동료들과의 토론, 제 고찰이 담긴 결론을 냈습니다. 이 글은 이 결론을 설명하는 글입니다. strlcat..

    [Class Flix] EP 21. Bean Validator 적용

    지금까지는 회원가입이나 강의등록시 올바른 데이터인지 검증하지 않았습니다. 사실 기능은 몇개 넣었는데 잘 모르고 사용했습니다. Validation을 학습하고 실무에서 많이쓰는 방법으로 제 프로젝트에 적용해 보겠습니다. 2021.10.10 - [Web/MVC2] - EP3. 검증1 - Validation EP3. 검증1 - Validation 지금까지 만든 웹 어플리케이션은 사용자가 입력하는 모든 상황을 대비할 수 없습니다. 예를들어, 사용자가 가격을 입력하는 곳에 알파벳을 입력하거나 그냥 입력 창에 공백을 넣게되면 에러페 ksabs.tistory.com 2021.10.14 - [Web/MVC2] - EP4. 검증2 - Bean Validation EP4. 검증2 - Bean Validation EP3. 검..

    EP4. 검증2 - Bean Validation

    EP3. 검증1 에서 검증로직 구현은 개발자가 직접 작성했습니다. 사실 이 검증 로직은 여러 프로젝트에서 공통적으로 쓰이는 로직입니다. 그래서 검증 로직을 모든 프로젝트에서 공통적으로 쓰일 수 있게 공통화하고, 표준화 한 것이 바로 "Bean Validation" 입니다. Bean Validation 이란? Bean Validation 자체는 어떠한 구현체가 아니라 '기술 표준'입니다. 그래서 우리는 일반적으로 Bean Validation을 구현한 구현체 "하이버네이트 Validator"를 사용합니다. (앞에 붙은 하이버네이트는 ORM과는 관련이 없는 이름입니다.) (마치 기술 표준 JPA가 있고 구현체로 Hibernate 를 사용하는 것과 같은 맥락입니다.) Bean Validation 적용 1. va..

    EP3. 검증1 - Validation

    지금까지 만든 웹 어플리케이션은 사용자가 입력하는 모든 상황을 대비할 수 없습니다. 예를들어, 사용자가 가격을 입력하는 곳에 알파벳을 입력하거나 그냥 입력 창에 공백을 넣게되면 에러페이지로 연결이 되며 기존에 작성했던 데이터는 다 사라지게 됩니다. 만약 우리가 회원가입시 이런 상황을 겪게 된다면 당연히 이 사이트를 더이상 이용하고 싶지 않을 것입니다. 검증은 클라이언트에서도 가능하고 서버에서도 가능합니다. 클라이언트 검증은 포스트맨 등으로 조작할 수 있으므로 보안에 취약합니다. 하지만 서버만으로 검증하면, 즉각적인 고객 사용성이 부족합니다. 둘을 적절히 섞어서 사용하되, 최종적으로 서버에서 검증하는 과정은 필수입니다. API방식을 이용하면 API 스펙을 잘 정의해서 검증 오류를 API 응답 결과에 잘 넘..