본문 바로가기

전체 글

(166)
[ 230619 ] Chained Exception ? 궁금한 계기 강의를 듣다가 Chained Exception 내용이 나왔다. Exception은 흔히 들어본 반면 Chained Exception 너무나 생소한 단어였다. 검색을 해보며 Chained Exception은 무엇이며 어떻게 사용할 수 있는지에 대해 찾아보기로 했다. 오라클 공식 문서와 블로그를 통해 감을 잡을 수 있었다. Chained Exception 란? 예외 간의 원인과 결과를 연결해 준다. 주로 여러 가지 예외를 큰 분류 예외로 묶어서 다루거나 Checked Exception을 Unchecked Exception으로 포장을 할 때 사용을 한다. 에러가 있을 경우 정확한 원인을 찾을 수 있도록 하기 위해 사용하기도 한다. 예시로 흔히 우리가 IDE에서 에러가 뜰 때 쭉 보이는 메시지들을 ..
[ 230618 ] 사이드 프로젝트 Graphiql 적용하기 적용 이유 친구와 진행하고 있는 사이드 프로젝트에 Graphql를 적용했는데 막상 테스트하기가 쉽지 않았다. 그래서 검색을 해보니 쉽게 테스트할 수 있는 GUI인 Graphiql를 제공한다는 것을 알 수 있었다. 장점 Graphiql은 query를 날려볼 수 있을 뿐만 아니라 schema도 확인을 할 수 있다. 그리고 날려본 쿼리에 대한 History를 확인할 수 있는 등에 몇 가지 기능도 제공을 한다. 이 점은 Front와 협업하는 데에 많은 도움을 줄 수 있을 것이다. 적용 application.yml에 옵션을 추가함으로 쉽게 적용을 해볼 수 있다. [ 추가 옵션 ] spring: graphql: graphiql: enabled: true 결과 "http://localhost:8080/graphiql..
[ 230618 ] 27주차 회고 일주일 간 진행한 내용 1. 자바 문법 강의 듣기 2. 팀 과제 - 숫자야구 4. 사이드 프로젝트 3. 코딩 문제 풀기 자바 문법 강의 [ 진행 ] 4일 동안 자바 문법 강의를 듣는 시간을 가졌다. 자바 정의, JVM, 객체지향, 자료형, 조건문, 반목문 등에 대해서 다루고 있었다. 기존에 학습했던 적이 있어서 쉽게 강의를 들을 수 있었다. 중간에 있던 과제도 무난히 해결해 제출할 수 있었다. [ 생각 ] 이번 강의를 듣는 시간은 아쉬운 점이 더 많은 시간이었다. JVM 구조와 객체지향에 대한 설명은 다시 리마인드 할 수 있는 시간이어서 좋았다. 하지만 자료형, 조건문, 반복문을 다시 듣는 시간은 아까웠다. 막상 시간은 많이 사용해야 했지만 얻은 것은 없었기 때문이다. 그래서 멘토님에게 이러한 상황에 대..
[ 230617 ] Java Spring WireMock 이슈 및 적용 사용 이유 일반적으로 단위 테스트를 짤 때는 mock을 만들어해야 하는 외부와 통신이 들어가는 부분을 제외한다고 책에서 읽어었다. 하지만 이번에 사이드 프로젝트 하면서 친구와 논의를 해 mock을 적용을 해보기로 했다. 이제까지 테스트 코드를 많이 적용해 보지 못했기에 연습도 겸하는 것도 있었다. 의존성 문제 공식 사이트에서 제공하는 방식으로 build.gradle에 의존성을 추가함으로 설치를 했다. 설치 후 JUnit5를 기반한 어노테이션을 사용해 코드를 작성했다. 하지만 테스트를 실행 했을 때 에러가 뜨며 정상적으로 동작하지 않았다. 라이브러리가 정상적 설치가 되었지만 WireMock 관련 클래스를 찾지 못했기 때문이다. [ 추가한 의존성 ] testImplementation "com.github.t..
[ 230616 ] 내가 느낀 페어 프로그래밍 관하여 알고리즘 문제 페어 프로그래밍으로 풀면서... 내가 그동안 겪었던 페어 프로그래밍은 문제를 같이 논의하며 풀어나가는 것이었다. 그 과정에서 서로 배우면서 성장한다는 느낌을 많이 받았다. 그런데 이번 2주차 알고리즘 문제 페어 프로그래밍을 하면서 시간 대비 우리 팀원 모두의 성장에 도움이 되지 않는다는 느낌을 받았다. 각자의 경험치 차이에서 발생하는 현상이었다. 그래서 어떻게 하면 모두에게 도움이 될 수 있을까 고민도 해보고 주변 5년차 개발자 분에게도 조언을 구했다. 조언을 얻고 나서 페어 프로그래밍을 할 때 긴 시간을 가진다고 해서 효율이 있는 것은 아니다. 그래서 때론 각 문제나 이슈에 대해 시간을 정해서 드라이버가 해결해보고 안 될 경우 네비게이터가 답을 제공해야 한다. 네비게이터가 제공한 코드를 ..
[ 230615 ] Java 계산기 메서드 작성하기 만든 이유 강의를 듣고 간단하게 계산기 만드는 과제가 있었다. " 피연산자 (연산자) 피연산자" 형식의 값을 입력받아 계산을 해주었다. 그러다 보니 연속된 연산을 거치기 위해서는 입력을 여러 번 해야 했다. 긴 계산식을 한 번에 받아 처리해 주는 메서드를 작성해 보기로 했다. [ 입력 형식 변경 ] "피연산자 (연산자) 피연산자" -> "피연산자 (연산자) 피연선자 (연산자) 피연산자 ..." Java 코드 작성 숫자, 연산자를 저장하는 Stack 객체를 2개 만들었다. 맨 마지막에 있는 값을 결과로 사용하고 싶어서 FILO형태의 자료구조를 선택한 것이다. 그리고 기본 분기는 operator 중심으로 작성해서 처리했다. 문자를 다룰 때는 변동이 많은 경우 StringBuilder를 사용해 처리했다. St..
[ 230614 ] Java Spring에 Graphql 설정 적용 이유 친구와 사이드 프로젝트를 시작했다. 자바로 백엔드를 만들기로 했으며, Rest API 대신 Graphql을 통해 구현해 볼 것을 제안했다. 이유는 Graphql이 Rest API에 비해 언더패치와 오버패치를 방지할 수 있다는 장점이 있기 때문이었다. Spring 적용 [ build.gradle 파일에 추가 ] implementation 'org.springframework.boot:spring-boot-starter-graphql' [ application.yml 파일에 추가 ] graphql: servlet: enabled: true mapping: /graphql corsEnabled: true cors: allowed-origins: http://localhost:8080 allowed-..
[ IDE ] IntelliJ 터미널 한글이 깨지는 문제 문제 사항 팀원 분과 숫자 야구를 만들 때 IntelliJ에서 코드를 짜서 실행을 했다. 이때 터미널에 출력한 한글이 깨져 보이는 현상이 나타났다. 원인 파악 Java의 경우 인코딩이 UTF-8로 설정이 되어 있었고 터미널의 경우 윈도우 환경이다 보니 인코딩이 CP-949로 설정이 되어있었다. 인코딩이 맞지 않아 실행한 프로그램이 출력한 한글이 깨지는 현상이 발생한 것이다. 해결 방안 IntelliJ의 실행 티미널의 인코딩을 UTF-8로 변경을 해줌으로 해결을 했다. 변경하는 방식은 아래 경로의 파일에 Dconsole.encoding 옵션을 추가해 주는 것이다. 파일 경로. "C:\Program Files\JetBrains\IntelliJ\bin\dea.exe.vmoptions" 추가 옵션. -Dcons..