분류 전체보기 썸네일형 리스트형 [백엔드온라인TIL] java 학습 25일차 스프링을 공부하다 보면 꼭 나오는 이야기가 있다. 스프링은 IoC 컨테이너로 빈을 관리한다. 스프링은 DI를 사용한다. DI 방법에는 생성자 주입, setter 주입, 필드 주입 등이 있다. ... 아니 근데 대체 IoC는 뭐고 DI는 뭔데? 스프링을 공부하다 보면 IoC, DI 같은 개념이 계속해서 나오게 되고, 결국 이를 이해하지 않고서는 스프링을 이해할 수 없다. 결국 이 개념들을 한번 정리하고 이해하고 넘어가는 시간이 필요하다. Inversion of Control "Don't call us. We'll call you." - Hollywood Principle Inversion of Control. 우리 말로 번역하면 제어의 역전 정도로 번역할 수 있을 것 같다. 대체 무슨 제어가 역전된다는 것.. 더보기 [백엔드온라인TIL] java 학습 24일차 스프링 개념 복습 Spring : JAVA 기반의 서버 프레임워크, Spring 기반 WEB 동작 구조는 다음과 같다. IntelliJ : JAVA 코딩에 특화된 IDE (현업에서 많이 쓰인다고 함👍🏻) Project 생성 시 Dependendcies를 선택하는데, 이번 Spring boot 프로젝트에서는 다음의 것들을 선택&활용한다. Lombok - Developer Tools, Spring Web - Web, 웹 프로젝트이기에 Spring Web을 활용 Spring Data JPA - SQL, SQL query 등을 짜지 않고도 Data CRUD가 가능하도록 하는 번역기 역할 MySQL - SQL, H2 Database - SQL, Controller 테스트 등을 위해 서버가 동작 중일 때만 유효한 .. 더보기 [SpringBoot] 포스트맨 실행 시 에러 Error: Exceeded maxRedirects. Probably stuck in a redirect loop 현재 상황 - 인증, 인가 관련 예외 처리를 진행하던 중, AuthenticationEntryPoint에서 응답을 주기 위해서 redirect를 하고 있었다. - 흐름은 AuthenticationEntryPoint -> sendRedirect("/exception/**") -> ExceptionController에서 throw new CustomException -> ControllerAdvice에서 해당 exception에 대한 예외 처리 - 그러나 해당 response가 Controller까지 도달하지 못하고 계속 요청이 동작하지 않는다. - 프로젝트에는 스프링 시큐리티가 적용되어 있다. 문제 Could not get response Error: Exceeded maxRedirects. Probabl.. 더보기 [백엔드온라인TIL] java 학습 23일차 @Scheduled Spring Boot에서 @Scheduled 어노테이션을 사용하면 일정한 시간 간격으로, 혹은 특정 시간에 코드가 실행되도록 설정할 수 있다. 주기적으로 실행해야 하는 작업이 있을 때 적용해 쉽게 사용하자. @Scheduled 사용법 @Scheduled 어노테이션을 사용하기 위해 다음과 같이 Application Class에 @EnableScheduling을 추가한다. @EnableScheduling @SpringBootApplication public class SchedulerApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } 그리고 실.. 더보기 [백엔드스터디WIL]5주차 학습일지 Lombok 라이브러리에서 제공하는 어노테이션 중에서 자주 사용되는 어노테이션 위주로 살펴보도록 하겠습니다. 접근자/설정자 자동 생성 제일 먼저 살펴볼 어노테이션은 @Getter와 @Setter 입니다. 아마 Lombok에서 가장 많이 사용되는 어노테이션일 텐데요. 예를 들어, xxx라는 필드에 선언하면 자동으로 getXxx()(boolean 타입인 경우, isXxx())와 setXxx() 메소드를 생성해줍니다. @Getter @Setter private String name; 위와 같이 특정 필드에 어노테이션을 붙여주면, 다음과 같이 자동으로 생성된 접근자와 설정자 메소드를 사용할 수 있어서 매우 편리합니다. user.setName("홍길동"); String userName = user.getName(.. 더보기 [백엔드온라인TIL] java 학습 22일차 1. mvc 패턴 파악 MVC패턴이란, Spring MVC란, Spring MVC 장점, Spring MVC MVC 패턴이란 MVC 패턴이란 Model(모델), View(뷰), Controller(컨트롤러)의 앞글자를 따서 이름지어진 디자인 패턴입니다. 각 컴포넌트는 아래와 같은 역할을 갖고 있습니다. 모델(Model): 애플리케이션 데이터만을 포함하고, 데이터 조작하는 로직을 포함하지 않습니다. 뷰(View) : 모델(데이터)를 사용자에게 표시합니다. 컨트롤러 (Controller): 뷰와 모델 사이에 컨트롤러가 있습니다. 뷰(또는 다른 외부 소스)에 의해 변경요청된 이벤트들을 감지하고, 이러한 이벤트들에 대한 적절한 로직을 실행합니다. 세 가지 구성요소의 관계를 그림으로 표현하면 다음과 같이 표현할 .. 더보기 [백엔드온라인TIL] java 학습 21일차 Spring Security를 이용하기 위한 환경설정 build.gradle에 아래 디펜던시를 추가해주자. // spring security implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' testImplementation 'org.springframework.security:spring-security-test' 나는 따로 리액트나 뷰를 사용하지 않고 템플릿엔진인 Thymeleaf를 사용하기 때문에 thymeleaf-springsecurity 디펜던시를 추가해주었다. 또한, 테스트 코드에서 스프링 시.. 더보기 [백엔드온라인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 에러가 발생했다.(일반적으로 발생하지 않는듯 하다.) 이런 에러가 발생할 경우.. 더보기 이전 1 ··· 13 14 15 16 17 18 19 ··· 26 다음