프로젝트 개요 : 이것이 취업을 위한 백엔드 개발이다 클론코딩 - 상품관리 애플리케이션프로젝트 환경 : IntelliJ, SpringBoot, MySQL프로젝트 코드 : https://github.com/smkim9202/ProductManagement@RestControllerAdvice 유효성 검사 예외 처리예외 클래스도 패키지 이름이 있고, 예외를 처리 할 때는 패키지 이름보다 예외 이름이 더 중요이름은 해당 예외에 관한 힌트를 제공, 상속 관계를 활용하면 모든 예외에 대해 하나하나 처리할 필요 없음도메인 객체 : jakarta.validation.ConstraintViolationException컨트롤러 : org.springframework.web.bind.MethodArgumentNotVali..
ALL
동일성(identity)public class Main { public static void main(String[] args) { String str1 = new String("is same?"); String str2 = new String("is same?"); System.out.println(str1 == str2); // false }}실행 결과 : false동일성 비교 연산자 : ==자바에서 동일하다고 말하는 경우 : 같은 인스턴스 참조하고 있을 때각 인스턴스가 같은 값을 가지고 있더라도 String 객체가 각각 생성되었기 때문에 서로 다른 인스턴스 => 두 변숫값은 서로 동일하지 않음 동등성(equality)public class Main {..
프로젝트 개요 : 이것이 취업을 위한 백엔드 개발이다 클론코딩 - 상품관리 애플리케이션프로젝트 환경 : IntelliJ, SpringBoot, MySQL프로젝트 코드 : https://github.com/smkim9202/ProductManagement 유효성 검사 위치각 필드별 요구사항상품 번호1부터 시작, 추가시 1씩 증가동일한 상품 번호는 존재 불가상품 이름1~100글자 사이의 문자열동일한 상품 이름 존재 불가 가격0~1,000,000원 사이의 값재고 수량0~9,999개 사이의 값도메인 지식길이, 자료형 등의 도메인 지식도메인 객체 내부에 유효성 검사를 실행 - 도메인지식은 객체 밖으로 빠져 나가지 않는 것이 좋음도메인 지식을 도메인 계층 밖으로 공개하면 중복된 코드 양산, 클래스 응집도 낮아짐서비..
프로젝트 개요 : 이것이 취업을 위한 백엔드 개발이다 클론코딩 - 상품관리 애플리케이션프로젝트 환경 : IntelliJ, SpringBoot, MySQL프로젝트 코드 : https://github.com/smkim9202/ProductManagement상품 조회하기상품 번호 기준으로 하나의 상품 조회ListProductRepository.java public Product findById(Long id){ Product foundProduct = null; for (Product product : products) { if (product.sameId(id)) { foundProduct = product; ..
프로젝트 개요 : 이것이 취업을 위한 백엔드 개발이다 클론코딩 - 상품관리 애플리케이션프로젝트 환경 : IntelliJ, SpringBoot, MySQL프로젝트 코드 : https://github.com/smkim9202/ProductManagementDTO와 ModelMapperData Transfer Object : 데이터를 전송하는 역할을 가진 객체클라이언트에게 노출되는 데이터 구조와 백엔드 애플리케이션 내부 데이터 구조를 분리하기 위해 사용DTO 사용 이유도메인 객체를 컨트롤러, 서비스, 레포지토리에서 바로 사용시 도메인 객체의 필드가 변경되면 모든 계층이 영향을 받게 됨(실무에서 데이터 구조가 바뀌는 일은 자주 일어나는 일) 내부적으로 동일한 도메인 객체라 하더라도 상황에 따라 조금씩 다른 데이..
프로젝트 개요 : 이것이 취업을 위한 백엔드 개발이다 클론코딩 - 상품관리 애플리케이션프로젝트 환경 : IntelliJ, SpringBoot, MySQL프로젝트 코드 : https://github.com/smkim9202/ProductManagement상품 추가 1. 컨트롤러 만들기 : ProductController.javapackage kr.co.api.product.management;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMet..
프로젝트 개요 : 이것이 취업을 위한 백엔드 개발이다 클론코딩 - 상품관리 애플리케이션프로젝트 환경 : IntelliJ, SpringBoot, MySQL프로젝트 코드 : https://github.com/smkim9202/ProductManagement상품 관리 애플리케이션의 요구사항List로 관리되는 상품을 관리하는 애플리케이션 => DB로 관리되는 상품을 관리하는 애플리케이션상품상품 번호1부터 시작, 추가시 1씩 증가, 동일한 상품 번호는 존재 불가상품 이름1~100글자 사이의 문자열, 동일한 상품 이름 존재 불가가격0~1,000,000원 사이의 값재고 수량0~9,999개 사이의 값상품에 대한 행동상품 추가단건으로 하나씩 상품 추가 상품 조회상품 번호 기준으로 하나의 상품을 조회전체 상품 목록 조회상..
간단한 AJAX 코드비동기 자바스크립트와 XML이라는 뜻으로 자바스크립트를 통해 서버에 비동기로 요청하는 것XML이 붙었지만, JSON을 사용해도 무관(현재는 JSON 사용하여 통신하는 경우가 많음)클라이언트 코드HTML 페이지 내에 XHR을 사용하여 서버로 AJAX 요청하는 코드 AJAX resources/static 폴더에 추가된 ajaxStudy.html onReadyStateChange()라는 함수 선언ajaxRequest.readyState가 DONE or 4가 되면 true, 아니면 false 에러로그 찍음 XHR 객체는 UNSENT -> OPENED -> HEADERS_RECEIVED -> LOADING -> DONE의 순서로 총 4번의 변화UNSENT : 0 : XHR 객..
JSON 표기 방법Javascript에서 Object(객체)를 Notation(표기)하는 방법기본형태{ "name":"김땡땡". "age":30, "isAlive":true, "address":{ "city":"Seoul", "postCode":"12345" }, "family":["dad","mom"] "children":[], "spouse":null}[ { "name":"이가네". "age":20 }, { "name":"박가네". "age":30 }]중괄호로 시작해서 중괄호로 끝남"key":value 처럼 하나의 쌍으로 데이터를 표기각 데이터의 쌍은 쉼표로 구분key는 큰따옴표 필수, value은 값의 타입에 따라 큰따옴표로 감싸거나 감싸지 않음배열의 형태로 시작할 수 있..
참고- 수제비 정보처리기사 필기 책- 유튜버 쉬운코드 '네트워크와 인터넷 개념 설명' Internet?컴퓨터로 연결하여 통신 프로토콜을 이용해서 정보를 주고받는 컴퓨터 네트워크the network of networks, the wold's largest WAN, global network발전 WEB은 HTTP와 함께 사용 되고, 웹 페이지를 보기 위해서는 웹 브라우저를 이용표준 인터넷 프로토콜 집합(TCP/IP)을 사용해 제공되는 지구 전체의 컴퓨터 네트워크 시스템HTML, 전자 우편을 지원하는 기반 기술 등을 통해 광대한 범위의 정보 자원과 여러 서비스를 운반구성종단 시스템(Network edge)host : 네트워크 제일 끝에 있는 노드(end system), 네트워크를 사용하기 위해 연결된 노드(네..