-
스프링 js 개발 환경설정
devtool 사용 org.springframework.boot spring-boot-devtools runtime true 프로퍼티 설정spring.devtools.livereload.enabled=truespring.devtools.restart.enabled=truesetting > 빌드 실행 배포 > 컴파일러 > 프로젝트 자동 빌드 setting > 고급설정 > 컴파일러 > 개발된 애플리케이션 ...
-
spring jpa
오늘 공부한 내용 정리@Column -> 엔티티 필드명은 name인데 참조하는 테이블의 필드명은 user_name 일때 매핑할 수 있음. 제약조건을 걸 수 있음@JoinColumn -> 연관관계 매핑시에 사용됨.(해당 필드가 외래키가 됨)@OneToMany(mappedBy = "") -> 양방향 관계일때 누가 외래키를 가져야하는지 정해야함. mappedBy를 통해 자신이 연관관계의 주인이 아닌 것을 표시. mappedBy에는 어떤 필드가 외래키를 가졌는지 명시해줘야함. @Embedded , @Embedding -> VO를 만들고 entity 필드로 선언할때 이게 값타입임을 명시하기 위해 사용. VO에 선언된 필드들이 테이블에 그대로 적힘. @Enumerated(value = EnumType.STRING)..
-
스프링 웹소켓 및 STOMP
[Spring Boot] STOMP를 이용한 실시간 채팅 및 채팅방 동적 생성프로젝트 속 구현한 실시간 채팅은 다음과 같이 동작한다.STOMP(Simple Text Oriented Message Protocol)는 기존 WebSocket 통신 방식을 좀 더 효율적으로, 조금 더 쉽게 다룰 수 있게 해주는 프로토콜이다.이 프velog.io 기존 http 통신은 서버가 클라이언트의 상태를 기억하지 않고 단방향으로 진행된다.또한 연결이 오면 연결을 맺고 응답을 받으면 연결을 끊어버린다. (요청단위로 통신) 웹소켓은 계속 연결을 유지하고 요청을 끝내는 동작이 따로 필요하다. 정보처리http 와 웹소켓 통신은 주고받는 데이터 포멧이 다르다.하지만 웹소켓 통신에서 핸드쉐이킹이 http 프로토콜 일어나긴 하지만 ..
-
xcode 시뮬레이터 더미데이터 삭제하기
문제 발생 : xcode 업데이트 후 시뮬레이터를 새로 까는데 도중에 실패함.메모리를 확인하는데 분명 도중에 실패했는데도 system data 에 해당하는 데이터 크기는 늘어나는 것을 확인했다. 문제 해결 :처음에 xcode > setting > location 에 적힌 경로에 들어가서 ls -alsh 로 파일 크기를 탐색했는데 크기가 큰 찾아지는 파일이 없었다.구글링해서 시뮬레이터 저장 패스라고 적혀있는곳을 다봤는데 따로 관찰되는 파일이 없었다. 방법터미널에서 sudo find / -type f -size +6G 명령어 를 이용해 6기가 이상의 파일을 찾았다./Library/Developer/CoreSimulator/Cryptex/Images/Inbox에 모든 데이터가 있었다. 해당 경로에있는 모든 ..
-
스프링 시큐리티 필터
시큐리티 필터 이론 [Spring Security] Spring Security Filter Chain 에 대해안녕하세요 오늘은 Spring Security 에서 인증,인가 과정을 담당하는 Security Filter Chain 에 대해 알아보겠습니다.Security Filter Chain 이란 Spring Security 에서 제공하는 인증,인가를 위한 필터들의 모음입니velog.io 우리는 이전에 필터에 대해서 공부했다.FilterRegistrationBean 을 사용하여 필터를 등록했었다.이렇게 등록된 필터들은 여러 필터들이 모여 체인을 형성한다.서블릿 컨테이너가 요청 URI 경로를 보고 필터를 거친다. 이러한 서블릿 필터중 delegatingFiilterProxy가 있고 해당 필터 내부에는 ..
-
스프링 Aop
저번 포스팅에 필터와 인터셉터에 대해 알아봤다. AOP는 OOP를 보완하기 위해 나온 개념으로 관점 지향 프로그래밍을 말한다.또 찾아보면 종단 관심사를 처리한다고 나와있다. AOP를 정확히 이해하기 위해선 advise, joinPoint, pointcut을 이해하는것이 중요하다. advise는 가로챈 메소드의 어느 시점에 시행되는가를 정의한다.pointcut은 특정 어노테이션, 특정 url 패턴을 만족하는지 여부를 catch한다.joinPoint는 해당 메서드 이름, 파라미터 타입 및 값등을 조회할 수 있도록 만든다. aop는 공통적으로 로깅, 트랜젝션 관리, 권한, 디코딩 인코딩, 이미지 압축 같은 부분에서 사용될 수 있다.
-
스프링 필터 vs 인터셉터
필터 [Spring Boot] 스프링 부트 필터 적용 (Filter)목차 1. 필터를 왜 쓰나요? 결론부터 말하면 공통부분을 따로 작성하여 중복 소스를 줄이고 소스 관리도 쉬워져 유지보수에 좋습니다. Spring (자바) 개발을 하다 보면 공통적으로 처리해야 할 부veneas.tistory.com spring - 스프링에서의 필터 개념 및 예제블로그에서 사용한 소스코드는 https://github.com/97e57e/BLOG 에서 보실 수 있습니다. Filter 란? 사실 필터는 스프링의 독자적인 기능이 아닌 자바 서블릿에서 제공하는 기능입니다. 스프링 프레임워크gardeny.tistory.com 필터 적용시키기1. Filter를 implements하는 필터 클래스를 구현2. FilterRegist..
-
스프링 intellij 디버깅
프로그램 재개를 통해 다음 브레이크 포인트로 이동할 수 있음.스탭 오버를 통해 다음 줄로 넘어갈 수 있음.스탭 인투는 해당 코드라인의 내부로 이동한다.IoC 와 라이브러리의 사용때문에 스탭 인투를 하다보면 예상치 못한 장소로 이동할 수 있음.스탭 아웃은 진입한 함수내에서 해당 함수를 끝냄. 해당 함수에서 문제가 없을때 사용. join 함수를 디버깅한다고 가정하자.만약 중복회원이 있어 validationDuplicationMember에서 에러가 난다고 생각하면save를 실행하지 못하고 에러 핸들러쪽으로 이동하게 된다.에러가 나는 경우 의도된 흐름과 다르게 흘러가기 때문에 validationDuplicationMember에도 중단점을 찍거나 스탭 인투로 진입해스탭 오버를 사용하며 해당 함수가 에러가 없는지..
-
스프링 Process 617 is still running
https://stackoverflow.com/questions/77003028/error-while-opening-intellij-idea-due-to-an-already-running-process Error while opening Intellij IDEA due to an already running processI am trying to open the Intellij IDEA on Mac, but it is showing the following error: Cannot connect to already running IDE instance. Exception: Process 464 is still I was able to open Intellijstackoverflow.comcd ~/User..
-
스프링부트 스웨거3
[Swagger] Open API 3.0 Swagger v3 상세설정※ 실습 프로젝트는 Github에서 확인 할 수 있습니다.jeonyoungho.github.io스웨거3 어노테이션 OpenAPI 3 Library for spring-bootLibrary for OpenAPI 3 with spring boot projects. Is based on swagger-ui, to display the OpenAPI description.Generates automatically the OpenAPI file.springdoc.orgspringdoc openAPI3 Swagger 공식문서 [Spring Boot] Springdoc 라이브러리를 통한 Swagger 적용목차 기본 환경 IntelliJ Ultimat..
-
스프링 실습 공부 계획
1. JWT 토큰 및 스프링 시큐리티 2. 로깅(slf4j) 및 AOP 3. api 명세(스웨거) 4. 이벤트 기반 아키텍처(카프카, 데이터 베이스) 5. 테스팅 6. 캐시 7. 스케쥴러 8. 웹소켓, 롱풀링, SEE
-
종합설계프로젝트 도메인 주도 개발
클라이언트 설계 클라이언트 주요 도메인 나누기 - 차량 (차량 정보 가져오기, 차량 마커 그리기 , 차량 부채꼴 그리기 등) - 발생원 (발생원 정보 가져오기 , 발생원 마커 그리기 등) - 악취 예측 (차량과 발생원을 이용한 악취 발생원 찾기 등) - 지도 (차량과 발생원 객체 생성, 객체들을 지도에 시각화 등) - 모달 (차량 정보 , 발생원 정보, 결과 정보를 표시하는 창 객체 등) - 지도 컨트롤러(모드에 맞는 지도객체 생성 등) - Minimum Significant Value (최소감지값을 충족하는 성분만 반영 등) 구현 시나리오 1. 지도 컨트롤러.js가 지도 데이터 로드. 2. 지도.js는 모드에 따른 prototype 정의 3. 모드에 따른 지도 객체 생성 4. 차량.js 과 발생원.j..