Spring

AJAX 사용하는방법 들어가며 스프링 부트를 사용하며 간단한 토이프로젝트를 만든후에 시큐리티를 적용한 로그인 페이지로 바꾸고있었다. 하지만 시큐리티를 적용하기전에는 AJAX를 사용하요 실시간으로 검증을 할수 있었는데. Security를 적용한후에는 사용이 안됬었다. 찾아보니 crsf설정을 해야했다. 그래서 어떻게 적용하는지 간단하게 알아보자 프로젝트환경 springboot -version : 2.6.3 bulid : gradlejava -version : 11 DB : Mysql_8.0.33 IDE : IntelliJ _Ultimate CRSF란 CSRF(Cross-Site Request Forgery)공격이란. 악성 웹 사이트 공격 유형이다. 간단하게 말하자면 사용자가 로그인한 상태에서 다른 사이트에 ..
JAR(Java Archive) 파일은 Java 애프릴케이션을 배포하고 실행하는데 사용되는 아카이브 형식이다. 서버를 배포하기 위해서는 jar파일로 만들어야한다. 만드는 방법 만들기전 패키지 구조 bootjar을 클릭하면 > Task :compileJava > Task :processResources > Task :classes > Task :bootJarMainClassName > Task :bootJar Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. BUILD SUCCESSFUL in 2s 4 actionable tasks: 4 executed 오후 5:15:22: Execution ..
버저닝이란 무엇인가? 버저닝이란? 버저닝 이란 API를 개발하면 시간에 따라 버전이 올라가는 것이 당연하다. 그로인해 새기능이 추가로 인해 변경될수 있다. 새 기술로 변경함에 따라 발견하지 못한 오류들이 갑작스럽게 나타날수있다. 그래서 기존 API를 사용자에게 안정적인 API를 제공하면서 새로운 버전의 API를 함께 제공하며 사용자가 원하는 API의 버전을 선택할수있는 기술을말한다. 다양한 API 버저닝 기법 URL버저닝 - URL에 버전 번호를 붙임 요청 파라미터 버저닝 - 버전 번호를 나타내는 HTTP 요청 파라미터를 추가 커스텀 HTTP 헤더 버저닝 = 버전을 구분할 수 있는 HTTP 요청 헤더를 추가 미디어 타입 버저닝 - 요청에 Accept 헤더를 사용해서 버전을 구분 프로젝트환경 springb..
AOP란 무엇일까? AOP는 왜 사용할까? AOP를 설명하기전에 상품을 주문을 예시를 들어서 생각해보자 위 사진처럼 3가지의 서비스가 있다고 생각해보자 이 서비스가 실행이 되고나면 로깅을 통해서 로그를 남기는 부가기능을 추가했다. 지금은 비지니스 로직이 3개이기 때문에 별거 아닐수 있다고 생각할수있다. 하지만 만약에 상품 주문에 관해 서비스가 100개라고 생각해보자 그럼 부가기능인 로깅도 100개가 될수있다. 같은 기능을 하는 동일안 코드가 로직안에 무려 100개나 중복되어 있는것이다. 만약 코드에 문제가있어 수정을 하게된다면 어떻까? 100개 코드를 수정해야 한다. 만약에 수정 중에 오타를 작성하거나 1개의 코드를 수정하지 못했다면 대참사가 발생할수있다. 그러면 어떻게 할까..? 부가기능을 따로 빼서 ..
트랜잭션(Transaction) 정의 데이터베이스서 수행되는 작업의 단위를 말한다. 이는 "원자성(Atomicity)",일관성(Consistency)","고립성(lsolation)", "지속성(Durability)"을 준수하는 작업의 단위다. 원자성(Atomicity) : 전부 실행되거나 전부 실행되지 않는다. 일관성(Consistency): 데이터베이스가 트랜잭션이 실행이 되더 라도 항상 일관된 상태를 유지하는 것 고립성(lsolation) : 동시에 여러 트랜잭션이 실행 되더라고 서로가 영향을 미치지않고 독립적으로 실행되는것 지속성(Durability): 트랜잭션이 성공적으로 완료되면 결과가 영구적으로 저정되는 것 트랜잭션 전파 트랜잭션 전파란 트랜잭션의 경계에서 이미 진행중인 트랜잭션이 있을때 또는..
서비스 추상화 서비스 추상화란 어떤 기능이나 상위기준에서 이해하고 다루기 위해서 세부 사항을 숨기고 추상화하는 것을 말한다. 즉 복잡한 시스템을 관리하기 쉽고 이해하기 쉽게 만들기 위함이다. 단 이몇줄로 이해하기 힘들 것이다. 간단한 코드를 통해서 어떤 식으로 추상화를 사용하는지 알아보자 예시 간단한 카페 등급을 예시를 들어서 생각해보자 카페 등급에는 총 3단계로 이뤄저 있다. 초급 단계 : 카페 가입시 기본등급 중급 단계 : 게시글 작성 3회 이상, 로그인 횟수 10회 이상 고급 단계 : 게시글 작성 10회 이상. 로그인 횟수 20회 이상 이 조건을 만족해야만 해당 등급으로 변경된다. 이런 기능을 추가할때는 DAO에다가 기능을 적용할 수도 있다. 하지만 스프링이 추구하는 "역할과 책임"을 위배하는 코드..
Exception 예외 종류 Error java.lang.Error 클래스의 서브 클래스이다. 에러는 시스템에 뭔가 비정상적인 상황이 발생했을때 사용된다. 체크 예외와 언체크 예외 Exception java.lang.Exception 클래스와 그 서브 클래스로 정의되는 예외들은 에러와 달리 개발자가 작업중에 코드에 예외상황이 발생했을때 사용된다. 체크예외 컴파일에러 복구불가능한 에러 RuntimeException만 상속받지않은 예외 RuntimeException java.lang.RuntimeException 클래스를 상속한 예외들은 명시적인 예외처리를 강제하기 때문에 언체크 예외라고 불린다. 런타임 예외 개발자가 부주의해서 발생할 수 있는 경우에 발생하도록 만든 예외 catch나 throws를 사용하지..
오브젝트 및 의존관계 들어가며 토비 님의 토비스프링 책을 참고하여 작성했으며, gradle로 파일을 설정하며 lombok 등의 플로그인을 사용하여 코드를 단순화했습니다. 오브젝트 오브젝트란 자바(Java)에서 "오브젝트"는 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 개념에 기반한 핵심 요소입니다. 객체 지향 프로그래밍은 현실 세계의 사물을 모델링하고 이를 소프트웨어로 구현하는 개념입니다. 스프링을 이해하려면 일단 오브젝트에 대해서 관심을 두어야한다. 애플리케이션에서 오브젝트가 어떻게 생성되며, 어떤 관계 맺고 사용되고 소멸되기까지 전 과정을 이해해야 하는 것이 중요하다. 결국 오브젝트를 의 설계 방향으로 발전했다. 객체지향 설계의 기초를 비롯해서이다.(재활용과, 더..
코드기록사
'Spring' 카테고리의 글 목록 (5 Page)