나의 이야기

스프링

(7)
AOP의 개념 및 사용 방법/주의사항 ■ AOP(Aspect-Oriented Programming)의 기본 개념AOP(Aspect-Oriented Programming)는 프로그램의 특정 측면을 모듈화하고 재사용 가능하게 만드는 프로그래밍 패러다임 입니다. AOP의 주요 개념은 횡단 관심사(Cross-Cutting Concerns)라는 개념입니다. 이것은 프로그램의 여러 부분에서 공통으로 사용되는 코드나 로직을 의미합니다.  ※ 예를 들어, 로그 기록, 트랜잭션 관리, 보안 검사 등은 대부분의 애플리케이션에서 공통으로 사용되는 기능이지만, 각각의 비즈니스 로직과는 독립적으로 구현되어야 합니다.이를 통해 코드의 복잡성을 줄이고, 유지보수성을 향상 시킬 수 있습니다. ■ AOP의 주요 용어와 개념 이해하기- 횡단 관심사(Cross-Cutting..
ckeditor의 이미지 업로드 및 삭제 백엔드( SpringBoot ) front에서 editor를 세팅을 마치고 이미지를 업로드 하려고 할 시에 이미지는 백엔드 작업이 필요하다. ckeditor의 경우 글 작성을 등록 전 이미지를 ckeditor에 업로드시에 이미지를 백엔드에 서버의 정적 폴더에 저장 후 해당 경로를 url과 함께 호출 하는 방식으로 이미지 미리보기 및 이미지를 처리하는 것이 보통이다. 아래는 vue3를 이용하여 ckeditor사용 방식을 정리한 글이다2024.07.22 - [프론트/vue] - vue3에서 ckeditor 사용방법(바인딩, 이미지 업로드 포함) 프론트에서 작업했던 axios를 이용해 api를 백엔드에서 작성해 보자 1. controller 생성@PostMapping("api/editor/imgUpload") public Res..
관계형 database식별 비식별 관계, 다대다 관계 해소 식별 관계 부모 테이블의 기본키 또는 유니크 키를 자식 테이블이 자신의 기본키로 사용하는 관계 부모 테이블에 데이터가 존재해야 자식 테이블에 데이터를 입력 가능 즉, 부모 데이터가 없다면 자식 데이터는 생길 수 없음 상품 등록시에 상품 사진을 등록하는 세 가지의 케이스이다. - 상품 한개당 사진이 없을 경우 - 상품 한개당 사진이 한개 있을 경우 - 상품 한개당 사진이 없을 경우 여러개 있을 경우 => 이런 경우 이 두테이블의 관계는 1:N 관계가 된다 이 경우 상품이 없으면 상품의 사진 테이블도 존재하지 않기에 위와 같이 관계선을 넣어주면 된다. 비 식별 관계 부모 테이블의 기본키 또는 유니크 키를 자신의 기본키로 사용하지 않고, 외래 키로 사용하는 관계 자식 데이터는 부모 데이터가 없어도 독립적으로 ..
회원가입시에 문자 인증 구현하기(coolSMS) 아래의 사이트에 들어가서 회원가입을 하여 api key를 생성한다. 링크 : https://coolsms.co.kr/ 세상에서 가장 안정적이고 빠른 메시지 발송 플랫폼 - 쿨에스엠에스손쉬운 결제 전용계좌, 신용카드, 계좌이체 등 국내 결제 뿐만 아니라 해용신용카드로 한번의 카드번호 등록으로 자동충전까지 지원합니다. 전용계좌, 신용카드, 계좌이체 등 다양한 결제 방식coolsms.co.kr  - api키와 secret키를 노출되지 않도록 하여 잘 저장해두고 이후 사용한다 1. gradle 의존성 추가implementation 'net.nurigo:sdk:4.3.0' 2. application.ymlcoolsms: api: key: "your API Key" secret: "your API Se..
window에 Redis-cli 설치하기/명령어 주소 : https://github.com/microsoftarchive/redis/releases Releases · microsoftarchive/redis Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes - microsoftarchive/redis github.com - msi를 다운받고 실행하여 계속하여 Next를 누르다 보면 C드라이브 Program Files에 Redis가 설치된다 - 작업 관리자를 보면 Redis가 실행 중 인것을 볼..
Spring Boot + Security 회원가입 기능 ■ 스프링 부트 환경에서 BCryptPasswordEncoder를 이용하여 회원가입을 통해 비밀번호를 암호화 하여 데이터베이스에 기입하고 security를 통해 데이터 통신에 있어 보안을 강화하도록 한다. mysql에 테이블, userEntity는 이미 만들어 놓은 상황으로 가정하에 기능을 구현한다. 1. 프로젝트에 spring Security 의존성 추가(Gradle) implementation 'org.springframework.boot:spring-boot-starter-security' testImplementation 'org.springframework.security:spring-boot-security-test' 2. securityConfig 클래스 구현 - 프로젝트에 config디렉토..
Spring Boot와 mybatis연동(mysql에 데이터 삽입 테스트) gradle기반으로 스프링 부트로 프로젝트를 만든 이후의 mybatis를 연동 작업 이다. 1. 의존성 추가 - 프로젝트 폴더들을 자세히 보면 build.gradle이 있을텐데 들어가서 의존성을 추가한다. - 아래의 코드를 복사하여 dependencies에 붙혀넣기 implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3' 2. DB 및 MyBatis 설정 - application.properties 또는 application.yml에 들어가서 데이터 베이스 연결 정보 및 마이바티스 설정 파일 경로 지정 spring.datasource.url=jdbc:mysql://localhost:3306/{db이름}?serverTimezone..