목록[백엔드] (125)
개발자로 후회없는 삶 살기
서론웹 어플리케이션을 개발하면 롬복을 사용하게 됩니다. 이번에는 롬복이 @equalsAndHashcode를 제공하는 이유와 자바의 동일성, 동등성을 알아보겠습니다. 본론- 동일성과 동등성package hello.jdbc.domain;import lombok.Data;import lombok.Getter;import lombok.Setter;public class Member { private String memberId; private int money; public Member(String memberId, int money) { this.memberId = memberId; this.money = money; } public Member(String..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 https://www.inflearn.com/roadmaps/373 www.inflearn.com 본론 - 트랜잭션 개념 데이터를 보관할 때 회원가입하면 회원 데이터를 보관할 때 db에 저장하는 이유는 db가 트랜잭션을 지원해서 그렇습니다. 트랜잭션은 이름 그래도 번역하면 거래라는 뜻으로 db에서 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장해주는 의미입니다. 하나의 거래를 안전하게 처리하려면 고려할 게 많습니다. 예를들어서 단순하게 회원을 가입하면 insert하면 되지만 A의 5000원을 B에게 이체한다고 치면 A의 잔고는 5000원 감소하고 B는 증가해야하는 것입니다. ..
서론※ 과거에 기록한 내용에서 중요한 부분만 발췌하여 모두가 이해하기 쉽게 다시 서술한다. 본론- 커넥션 풀 이해드라이버 매니저를 쓰면 커낵션을 sql을 보낼 때마다 매번 커낵션을 가져와야합니다. 그리고 커낵션을 획득할 때 다음과 같은 복잡한 과정을 거칩니다. 1) 어플 로직은 db 드라이버(jdbc 드라이버)를 통해 커낵션을 조회 2) db 드라이버는 db와 tcp/ip 커넥션을 db와 맺음(3 way handshake) 3) db 드라이버는 tcp/ip 커넥션 연결되면 id, pw와 기타 부가정보를 db에 전달 4) db는 id, pw로 내부 인증을 하고 내부 db 세션을 인증된 사용자로 생성 5) db는 커넥션 생성 완료되었다는 응답 6) db 드라이버는 커낵션 객체를 생성해서 서버 로직에 반환 이..
서론※ 과거에 기록한 내용에서 중요한 부분만 발췌하여 모두가 이해하기 쉽게 다시 서술한다. 본론- 프로젝트 생성프로젝트를 생성합니다. web으로 db를 다루기 전에 db에 접근하는 것부터 알아볼 것이기 때문에 위 3개의 라이브러리만 준비합니다. - h2 설치h2는 테스트할 때 간단하게 사용하기 좋은 db입니다. 최신 버전을 다운 받으면 안되고 스프링이 이전 버전을 지원하여 1.4.200 버전을 다운 받습니다.> 실행하고 최초의 한 번은 이렇게 맞추고 연결 실험을 해야합니다. 이렇게 하면 test.mv.db가 생성되고 그 이후부터는 다르게 접근해야 합니다. 저는 이전에 한 번 해서 최초 접근은 생략합니다. -> 테이블 생성테이블을 하나 만듭니다. id와 회원의 돈이 들어가 있습니다. 이제 이후에 어플에서 ..
서론빈 검증 시 사용되는 3가지 어노테이션의 차이를 알아보겠습니다. 본론1. @NotNull@Datapublic class MemberSaveForm { @NotNull private String userName; @NotNull private String loginId; @NotNull private String password;}NotNull을 언제 붙이는지 알아봅니다. NotNull의 경우 필드에 null이 들어오면 바인딩 에러가 발생합니다. null이 아닌 ""(공백), " "(띄어쓰기)은 허가하는 3개 중에선 가장 약한 검증입니다. 1) 필드가 String 타입MemberSaveForm처럼 필드가 String 타입인 경우 input 태그에 아무 값도 입력하지 않으..
서론 지금까지 배운 MVC2 총 집합체를 만들어 봅니다. 본론 - 프로젝트 기획 단계 => 요구사항 분석 => 서비스 기능 설계 정리 1. 설계 : 도메인 설계(도메인 설계, 도메인 별 협력 관계 설계, 도메인 별 클래스 다이어그램 설계), 시스템 흐름 설계, UI 설계 2. 기능 : 요구사항 명세서에 작성(원래 요구사항 명세서에는 개발 외적인 기능도 많아서 기능 정리에서는 별도로 기능을 정리해야 합니다.) - 프로젝트 설계 단계 1. 도메인 엔터티 설계 entity로는 회원과 상품이 있습니다. 로그인이나 file 같은 패키지도 도메인에 들어가지만 프로젝트 성격과 주제에 따라 유동적으로 변하는 것으로 도메인에 부가적인 요소지 도메인은 아닙니다. 그런 것들은 경험으로 알아가야 합니다. 2. 도메인별 협력 ..
서론※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다.https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요.www.inflearn.com 본론- 파일업로드 소개html form을 통해서 파일 업로드를 이해하려면 폼을 전송하는 두가지 방식의 차이를 알아야합니다. -> html 폼 전송 방식1) application/x-www-form-urlencoded일반적으로 form을 전송하는 방식으로 바디에 요청 바라미터 방식으로 name=value 형식으로 넘어가며 content-type이 application/x-www-form..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com 본론 - api 예외 처리 예외와 오류 페이지를 처리하는 경우는 2가지가 있습니다. 하나는 지금처럼 웹 페이지를 처리하는 경우로 그냥 404 페이지 예쁘게 보여주면 됩니다. 근데 복잡한 문제는 api 오류 처리입니다. 지금 문제가 생겼을 때 json 스펙을 정해서 어떤 형식으로 보낼 건지 정의하고 json을 만들어야 합니다. - 목표 api 예외는 어떻게 처리해야 할까요? 화면..