Spring
-
[ABAP] Class / Component / Object / Instance / StaticSpring 2024. 1. 4. 19:20
1. class : 객체 지향 프로그래밍의 기본 단위, 데이터와 해당 데이터를 처리하는 메서드를 하나의 단위로 묶어놓은 것. 명세서의 역할 을 하며, 객체를 생성하기 위한 템플릿으로 사용한다. 실제 데이터가 아니라 데이터의 형식과 행동을 정의 ! 2. component : 클래스 내부에 속하는 구성요소들을 통칭하여 컴포넌트라고한다. attribute, method, event 등이 존재한다. 3. object : 클래스를 기반으로 실제로 메모리에 할당되어 사용되는 것으로 클래스의 인스턴스를 의미한다. 생성된 객체는 클래스의 속성과 매세드를 활용할 수 있다. 그림으로 표현해보면... 자동차 공장을 예시로 들어보자. 자동차를 만드려면 일단 자동차를 만드는 방법을 정의해야한다. 그걸 정의하는게 바로 class..
-
[Spring] Spring + Slack 연동해서 알림받기(1)Spring 2023. 9. 5. 11:39
사용자가 불편신고를 등록하면 슬랙으로 불편신고 알림을 받는 기능을 구현해야 한다. 스프링부트와 슬랙을 연동하는 법을 알아보자! 크게 두 단계로 나눠지는데 1. SlackAPI 설정 2.스프링부트 SlackAPI 사용 일단 Slack API부터 설정하자 1. SlackBot 생성 -아래 사이트에 접속한다. (슬랙에 가입이 되어있어야 한다.) https://api.slack.com/ Slack은 생산성 플랫폼입니다 Slack은 팀과 커뮤니케이션할 수 있는 새로운 방법입니다. 이메일보다 빠르고, 더 조직적이며, 훨씬 안전합니다. slack.com Your apps 클릭 생성한 후에 bot 클릭 2. Slackbot 설정 좌측 메뉴 중 [OAuth & Permissions] 클릭 [Scopes] 에서 - cha..
-
[Spring] MySQL,Cannot drop table 오류 해결하기Spring 2023. 9. 3. 19:37
프로젝트에서 schema.sql 파일을 이용해 여러 테이블을 정의하고, spring boot 프로젝트에서 데이터베이스로 로드하고 있었다. 테이블을 수정하다가 예상치 못한 오류가 나타났다 . "Cannot drop table 'member' referenced by a foreign key constraint 'complain_ibfk_1' on table 'complain'." 근데 여기서 문제는 내 schema.sql 파일에는 complain이라는 테이블은 존재하지 않는다..ㅠ 처음에 만들었다가 수정했는데 아마 그 변경사항이 반영이 되지 않은 것 같다. 1. defer-datasource-initialization : hibernate 초기화 이전에 sql 스크립트를 실행할지 설정 할 수 있다. tru..
-
[Spring] Http 요청 - 응답 이해하기Spring 2023. 6. 29. 23:24
스프링의 전체적인 흐름을 정리해보자 1. tomcat에 http요청을 보낸다 우리가 주소창에 주소를 입력했을때 발생하는 일이다. 2. 스프링 부트의 디스패처 서블릿이 url을 분석하여 해당 컨트롤러를 찾는다. 디스패치가 아니라.. 디스패처 입니다..^^ 잘못 적었네 만약 사용자가 http://localhost/test 주소를 입력했다면 package me.kimyerin.springbootdeveloper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation..
-
[Spring] Spring 개념 정리Spring 2023. 6. 29. 22:27
중요 개념 1. 제어의 역전 : IoC(Inversion Control) 객체를 직접 생성하거나 제어하지 않고 외부에서 관리하는 객체를 가져와 사용하는 것 2. DI (Dependency Injection) 위에서 설명한 제어의 역전을 구현하기 위해 사용하는 방법의 일종 public class A{ @Autowired B b ; } 위 코드에서는 B를 선언 했을 뿐 직접 객체를 생성하지 않았다. 스프링 컨테이너라는 곳에서 객체를 B객체를 만들어서 클래스에게 넘겨준다(주입) 3. 스프링 컨테이너 : 빈의 생성부터 소멸되기까지의 생명주기를 관리 4. 빈 : 스프링 컨테이너가 생성하고 관리하는 객체 XML파일 설정, 애너테이션 추가 등 여러방법 제공 5. AOP(Aspect Oriented Programmin..
-
[Spring] Intellij 실행시 finished with non-zero exit value 1 오류Spring 2023. 6. 28. 10:21
초기에 스프링 부트를 실행하면 발생하는 오류라고 한다.. 1. [File] > [Settings] 2. [Build, Excution, Deployment > Build Tools > Gradle] 3. Gradle (Default) -> IntelliJ IDEA 변경 수정하고 다시 실행해주면 성공! 인줄 알았지만 Web application could not be started as there was no org.springframework.boot.web.servlet.server.ServletWebServerFactory bean defined in the context. 오류 발생 확인해보니 내가 main클래스 작성을 잘못했다. ㅎ package me.kimyerin.springbootdevelo..
-
[Spring] 프로젝트 생성하기Spring 2023. 6. 28. 10:12
초기에 spring 프로젝트 생성하는 방법을 정리해보자 1. intelliJ 에서 [file] > [new] > [project] 클릭 2. 설정 프로젝트 이름은 자유롭게 설정하시면 됩니다. 여기까지가 gradle 프로젝트를 생성한것이다. 3. 이 프로젝트를 스프링 부트로 바꾸면 된다. build.gradle 파일을 찾아 plugins { id 'java' id 'org.springframework.boot' version '3.0.2' id 'io.spring.dependency-management' version '1.1.0' } group 'me.kimyerin' //설정한 도메인 version '1.0' sourceCompatibility = '17' repositories { mavenCentr..