본문 바로가기

분류 전체보기

[백엔드온라인TIL] java 학습 20일차 1. Dispatcher Servlet 개념 디스패처 서블릿에서 dispatch 는, 보내다라는 뜻을 가지고 있다. 이러한 단어를 포함하고 있는 디스패처 서블릿은 스프링 어플리케이션의 최전방에서 HTTP 프로토콜로 들어오는 모든 요청을 받아 적합한 컨트롤러에 위임하는 프론트 컨트롤러라 볼 수 있다. 보다 자세하게 설명을 하자면, 클라이언트로부터 어떤 요청이 오면 톰캣과 같은 서블릿 컨테이너가 요청을 받게 된다. 그리고 이 모든 요청을 프론트 컨트롤러인 디스패처 서블릿이 받아서 공통적인 작업을 수행한 뒤 해당 요청을 처리할 컨트롤러 빈을 getBean() 메소드로 호출해서 받아와 요청에 적합한 컨트롤러의 메소드를 실행시킨다. 예외가 발생했을 때 일관된 방식으로 처리하는 것 또한 프론트 컨트롤러인 디스패처 .. 더보기
[백엔드온라인TIL] java 학습 19일차 mysql 비밀번호 분실하여 재설치 spring auth 공부 (jwt) mysql uroot -p 를 통해 접속하려는데 비밀번호가 틀리다고 접속이 안된다. 비밀번호를 재설정하자. 1. 작업관리자에서 mysql 혹은 mysqld를 종료 2. MySQL이 설치된 경로로 이동 관리자 권한으로 cmd를 실행한다. where mysql 를 입력하면 mysql이 설치된 경로를 알아낼 수 있다. 이렇게 mysql이 저장된 경로를 받아온 뒤(전체 경로에서 mysql.exe를 빼야 한다.) cd [경로]를 입력하여 해당 경로로 이동한다. 3. 이동한 경로에서 mysqld.exe --skip-grant-tables --console --shared-memory를 입력 이 때 Can't create test file 에러.. 더보기
[mysql] 비밀번호 분실 했을때 초기화 (8.0버전) mysql uroot -p 를 통해 접속하려는데 비밀번호가 틀리다고 접속이 안된다. 비밀번호를 재설정하자. 1. 작업관리자에서 mysql 혹은 mysqld를 종료 2. MySQL이 설치된 경로로 이동 관리자 권한으로 cmd를 실행한다. where mysql 를 입력하면 mysql이 설치된 경로를 알아낼 수 있다. 이렇게 mysql이 저장된 경로를 받아온 뒤(전체 경로에서 mysql.exe를 빼야 한다.) cd [경로]를 입력하여 해당 경로로 이동한다. 3. 이동한 경로에서 mysqld.exe --skip-grant-tables --console --shared-memory를 입력 이 때 Can't create test file 에러가 발생했다.(일반적으로 발생하지 않는듯 하다.) 이런 에러가 발생할 경우.. 더보기
[백엔드온라인TIL] java 학습 18일차 java bean 개념 1. Spring Bean이란 ? Spring Bean은 Spring IoC 컨테이너가 관리하는 자바 객체로서 컨테이너에 의해 생명주기가 관리되는 객체를 의미한다. IoC 컨테이너 안에 들어있는 객체로 필요할 때마다 IoC 컨테이너에서 가져와서 사용한다. 어노테이션인 @Bean을 사용하거나 xml 설정을 통해 일반 객체를 Bean으로 등록이 가능하다. 즉, Spring 에서는 Bean은 ApplicationContext가 알고 있는 객체이며 ApplicationContext가 생성하고 직접 관리해주는 객체를 의미한다. XML 기반의 Bean 정의 방법들 2. Spring Bean의 생명 주기 객체 생성 -> 의존 설정 -> 초기화 -> 사용 -> 소멸 과정의 생명 주기를 가지고 있.. 더보기
[백엔드스터디WIL]4주차 학습일지 0612~0616 공부내용 jpa 활용하여 게시판 프로젝트 개발 1. 로컬 호스트에 boarddb 데이터베이스 생성 후 memo테이블 생성 2. 소스프로그램 개발 index.html Memo 공유하고 싶은 소식을 입력해주세요. October 10, 2020 anonymous MemoController package com.sparta.sprmemoex.controller; import com.sparta.sprmemoex.dto.MemoRequestDto; import com.sparta.sprmemoex.dto.MemoResponseDto; import com.sparta.sprmemoex.service.MemoService; import org.springframework.web.bind.annota.. 더보기
[백엔드온라인TIL] java 학습 17일차 jpa대한 복습을 전반적으로 진행함 jpa를 사용하기위한 dependency 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.mysql:mysql-connector-j' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' }.. 더보기
[백엔드온라인TIL] java 학습 16일차 영속성 컨텍스트란? 영속성 컨텐스트란 엔티티를 영구 저장하는 환경이라는 뜻이다. 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 한다. 엔티티 매니저를 통해 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. em.persist(member); 엔티티 매니저를 사용해 회원 엔티티를 영속성 컨텍스트에 저장한다는 의미! 영속성 컨텍스트의 특징 엔티티 매니저를 생성할 때 하나 만들어진다. 엔티티 매니저를 통해서 영속성 컨텍스트에 접근하고 관리할 수 있다. 엔티티의 생명주기 비영속(new/transient): 영속성 컨텍스트와 전혀 관계가 없는 상태 영속(managed): 영속성 컨텍스트에 저장된 상태 준영속(detached): 영속성 .. 더보기
[mysql] 수강생 등록 및 삭제 sql 예제 1. 수강생을 관리하는 MANAGER 테이블을 만들어보세요. 컬럼은 총 id, name, student_code 입니다. id는 bigint 타입이며 PK입니다. name은 최소 2자 이상, varchar 타입, not null 입니다. student_code는 STUDENT 테이블을 참조하는 FK이며 not null 입니다. FK는 CONSTRAINT 이름을 ‘manager_fk_student_code’ 로 지정해야합니다. -- 1 create table MANAGER ( id bigint not null auto_increment, name varchar(10) not null, student_code varchar(100) not null, primary key (id) ); -- 1 외래키 추가 .. 더보기
[백엔드온라인TIL] java 학습 16일차 오늘 공부내용 1. spring 컨텐츠 개념 2. @RestController 어노테이션 3. jackson 라이브러리 사용 4. jdbcTemplate 정적 컨텐츠 정적 컨텐츠란? 서버에 저장되어 있고 변화 없이 브라우저로 뿌려지는 컨텐츠(파일) 요청에 따라 응답만을 수행 Spring Boot는 정적 컨텐츠 기능 자동 제공 → https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content /static 폴더에서 정적 컨텐츠를 찾아서 제공한다. /static 에 hello-static.html 을 생성 및 작성해보자. 파일 작성.. 더보기
[SpringBoot] html페이지에서 Json 값을 객체로 받아올때 주의사항 model public class Star { String name; int age; public Star(String name, int age) { this.name = name; this.age = age; } } controller // [Request sample] // POST http://localhost:8080/hello/request/form/json // Header // Content type: application/json // Body // {"name":"Robbie","age":"95"} @PostMapping("/form/json") @ResponseBody public String helloPostRequestJson(@RequestBody Star star) { retur.. 더보기