카테캠 실강을 따라하던 중 인텔리제이에서 빌드 할 경우, 계속 아래와 같은 오류가 나왔다. ✘ jiminkkk@jimin-ui-MacBookPro ~/Desktop/KakaoTechCam/lecture/kakao-6th-deploy main ± ./gradlew clean build > Task :compileJava FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileJava'. > java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member fiel..
어느날 내가 포크한 레포를 Clone할 때 아래와 같은 오류를 발견했다. remote: Write access to repository not granted. fatal: unable to access 'https://github.com/(내 레포)/': The requested URL returned error: 403 아니... push도 아니고 Clone 받는 건데... 뭐가 문제니...?? 구글링을 계속해서 해봤지만 나온 해결책은 push 시에 저 오류가 뜨는 것에 대한 것이라 적절하지 않았다. 그렇다가 찾은 해결 방법 저 오류를 만나기 전에 유저 네임과 비밀번호를 입력해야 하는데, 이때 비밀번호에 토큰을 입력하게 된다. 나는 토큰이 만료되어 오류가 나는 줄 알고 새로 발급하고 그랬는데,,, 이 ..
컨트롤러 단위 테스트 4주차 과제는 컨트롤러 단위 테스트였다! 과제의 상세 설명은 아래와 같다. 컨트롤러 단위테스트를 작성한뒤 소스코드를 업로드, stub을 구현하시오. Stub이란? 과제를 구현하기 위해서는 일단 Stub에 대해 이해하고 있었어야 했는데 Stub에 대해 이해하는 것에 시간이 조금 걸렸던 것 같다. 여러 서치와 강의 자료를 통해 내가 이해한 Stub을 간단하게 말하자면 어떤 함수를 실행할 때, 그 결과값을 임의로 설정하는 것이다. 컨트롤러 테스트에서는 보낸 요청에 대해 응답이 적절한가를 검증하기 때문에 결과값이 실제 데이터인지는 중요하지 않다. Stub 적용 예제를 통해 Stub을 적용해보자. 아래는 장바구니 전체 내역 보기에 대해 진행한 테스트이다. 일단, 테스트를 하기전에 Contro..
우리 프로젝트에서 관리자의 역할은 크게 2가지이다. 필수정보 수정 시 수락/반려 문서 생성 시 수락/반려 필수 정보 수정 시 시나리오 먼저 수락했을 경우 유저가 문서의 필수 정보인 카테고리, 위치, 이름 중 수정할 정보를 입력한다. 요청이 접수되면 관리자가 요청을 수락한다. 수락된 요청을 통해 문서의 필수 정보들을 업데이트한다. 수정 전의 문서는 문서 아카이브 테이블로 저장한다. 처리된 요청은 삭제한다. 반려했을 경우 유저가 문서의 필수 정보인 카테고리, 위치, 이름 중 수정할 정보를 입력한다. 요청이 접수되면 관리자가 요청을 반려한다. 처리된 요청은 삭제한다. 새 문서 생성 시 시나리오 먼저 수락했을 경우 유저가 새 문서의 필수 정보인 카테고리, 위치, 이름을 입력한다. 요청이 접수되면 관리자가 요청을..
DTO란 Data Transfer Object, 말 그대로 데이터를 전송하기 위한 객체이다. 왜 DTO를 사용해야 하는가 위와 같은 사용자의 정보를 저장하는 엔티티가 있다고 생각을 해보자. 우리는 해당 엔티티를 통해 DB에 사용자의 정보를 저장하게 된다. 만약 사용자들의 정보를 조회하는 요청을 왔다고 할 때, entity를 바로 전달하게 되면 password와 같은 불필요한 정보들이 노출될 수 있다. 또한 UI 계층에서 엔티티 내의 메서드를 호출하여 Model의 값이 변경될 수도 있다. 때문에 DTO 객체를 통해 필요한 데이터만 전달하고 Model을 보호 할 수 있다. 보일러 플레이트 코드 보일러 플레이트 코드는 반복적으로 재사용되는 코드를 말한다. 보통 데이터 무결성을 위해 개발을 하다 보면 gette..
2주차는 Dispatcher Servlet부터 Security까지 다양하게 학습하였다. 크게는 아래의 내용들에 대해 살펴보았다. 통신 과정 톰캣 Dispatcher Servlet DB Join과 제약조건 Spring Security의 인증과정(JWT) 블로깅을 통해 배운 내용 정리/추가 학습하기 https://mincanit.tistory.com/27 [CS] Tomcat에 대해 알아보자 톰캣 톰캣이란 Apache Software Foundation에서 개발한 오픈 소스 웹 서버 및 서블릿 컨테이너로 애플리케이션을 실행하는 프로그램 또는 컨테이너이다. 흔히, 아파치 톰캣이라고 부르지만 아파치 서버 mincanit.tistory.com 2023.07.11 추가 정리 중 2주차 회고 Keep 강의 시간에 최..
톰캣 톰캣이란 Apache Software Foundation에서 개발한 오픈 소스 웹 서버 및 서블릿 컨테이너로 애플리케이션을 실행하는 프로그램 또는 컨테이너이다. 흔히, 아파치 톰캣이라고 부르지만 아파치 서버와 톰캣을 착각하지 말자! 아파치 톰캣? https://velog.io/@kdhyo/Apache-Tomcat-%EB%91%98%EC%9D%B4-%EB%AC%B4%EC%8A%A8-%EC%B0%A8%EC%9D%B4%EC%A7%80#%EC%95%84%ED%8C%8C%EC%B9%98-%ED%86%B0%EC%BA%A3%EC%9C%BC%EB%A1%9C-%EB%B6%80%EB%A5%B4%EB%8A%94-%EC%9D%B4%EC%9C%A0에 따르면 아파치와 톰캣의 기능은 나뉘어져 있지만, 톰캣 안에 있는 컨테이너..
20529 가장 가까운 세 사람의 심리적 거리 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Collections; // 가장 가까운 세 사람의 심리적 거리 public class Main { // 테스트 케이스 T // 학생 후 N, // 엠비티아이 각각의 수 public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = ..
카카오 테크 캠퍼스 2주차 실강 중 MIME 타입이라는 용어가 등장하였다. 시간관계 상 강사님은 설명을 생략하셨지만 꼭 알아야 하는 개념이니 학습하라고 말씀해주셨고 MIME 타입에 대해 정리가 필요하였다. MIME 타입 MIME 미디어 타입이란 메시지 엔티티 부분의 콘텐츠를 설명하는 표준화된 이름이다. 브라우저들은 리소스를 내려받았을 때 해야 할 기본 동작이 무엇인지를 결정하기 위해 대게 MIME 타입을 사용한다. MIME 배경 MIME 타입은 본래 멀티미디어 이메일(MIME : Multipurpose Internet Mail Extensions) 을 위해 개발되었지만, 데이터 객체의 포맷과 목적 설명이 필요한 HTTP를 비롯해 여러 다른 프로토콜에서 재사용되어 왔다. MIME은 다섯 가지의 근본 자료로..
1주차 과제는 아래의 내용들로 이루어져 있었다. 요구사항 분석/API요청 및 응답 시나리오 분석 요구사항 추가 반영 및 테이블 설계도 과제를 진행하면서 강사님의 말씀처럼 최대한 러프하게 생각하고자 했다. 첫 요구사항 분석부터 디테일하게 가면 오히려 힘들어질 것 같아서 러프하게 하는 것을 추천하신 것 같다. 1주차 과제는 총 4문항으로 이루어져 있다. 💡 과제 설명 요구사항 시나리오를 보고 부족해 보이는 기능을 하나 이상 체크하여 README에 내용을 작성하시오. 추가 기능 도출 요구사항에 있는 화면에서 도출하자 전체 상품 목록 조회 전체 상품 목록 조회 라벨링별 목록 조회(무료배송 등) 개별 상품 상세 조회 상품 내용 조회 상품의 옵션 목록 조회 회원가입 이메일 중복 체크 중복 검사 이메일 형식 유효성 ..