일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 스파르타내일배움캠프TIL
- C++
- 유클리드호제법
- UnrealEngine
- unityui
- 문자열
- 해시
- Firebase
- c#
- 프로그래머스
- 내일배움캠프
- Unity3d
- 이분탐색
- 스파르타내일배움캠프
- BFS
- Unity2D
- 포톤
- 스택
- 알고리즘
- UE4
- 유니티
- QueryDSL
- Unity
- FSM
- 워크플로
- 순열
- Inventory
- 언리얼엔진
- Photon
- 구현
- Today
- Total
목록분류 전체보기 (165)
개발 낙서장
오늘의 학습 키워드📚 XSS와 CSRF의 설명 및 방어 방법 XSS는 Cross-Site Scripting으로 공격자가 웹 사이트의 URL, 입력 값 등에 악성 스크립트를 삽입해 다른 사용자의 브라우저에서 악성 스크립트가 실행되도록 하는 공격입니다. 이로 인해 쿠키나 세션을 탈취해 사용자의 정보를 캐거나 페이지를 변조하는 등의 위험이 있습니다. 따라서 스크립트에 쓰이는 문자를 필터링하고 쿠키, 세션에 중요한 정보를 담지 않는 등의 방법을 활용할 수 있습니다. CSRF는 인증된 사용자의 권한을 도용하여 웹 서버에 악의적인 요청을 보내 공격하는 방식입니다.. 방어하는 방법으로는 CSRF 토큰을 사용해 사전에 악의적인 요청을 막거나 사용자에게 주기적으로 재인증을 요청하는 등의 방법을 활용할 수 있습니다. 레디..
오늘의 학습 키워드📚 SSE SSE(Server Sent Event)는 서버에서 클라이언트로 이벤트를 보내주는 통신 방법이다. 클라이언트에서 서버로 HTTP 프로토콜을 통해 세션 연결 요청을 보내며 세션이 유지되는 동안 클라이언트는 서버로부터 이벤트 메세지를 받을 수 있다. 클라이언트에서 메세지를 보내지는 못하고 받을 수만 있어서 주로 알림 기능, 실시간 혹은 주기적으로 데이터 수신이 필요한 기능 등에 사용한다. SSE를 사용하게 된 계기는 현재 거래 글에서 주문 요청을 하면 아임포트 결제 메소드가 실행되고 결제가 완료되면 클라이언트에서 서버로 구매 요청을 하는데 해당 요청은 SQS로 보내진다. 서버에서는 SQS에 있는 메세지를 하나씩 가져오며 주문 처리를 하는데 이때 예외를 발생시키거나 정상적으로 처리..
오늘의 학습 키워드📚 실행 계획 public class Product { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long productId; @Column private String productName; @Column private Integer productStock; public void decreaseStock() { if (this.productStock > 0) { this.productStock -= 1; } else { throw new IllegalArgumentException("재고가 부족합니다."); } } } Product Entity에서 재고 감소 로직을 추가한다. @SqsListener(value = "..
오늘의 학습 키워드📚 AWS SQS Amazon Simple Queue Service(Amazon SQS)는 내구력 있고 가용성이 뛰어난 보안 호스팅 대기열을 제공하며 이를 통해 분산 소프트웨어 시스템과 구성 요소를 통합 및 분리할 수 있습니다. Amazon SQS는 배달 못한 편지 대기열 및 비용 할당 태그와 같은 공용 구성을 제공합니다. 또한 AWS SDK가 지원하는 모든 프로그래밍 언어로 액세스할 수 있는 일반 웹 서비스 API를 제공합니다. 아마존에서 제공하는 메세지 큐 서비스이다. 클라이언트에서 메세지를 전송하면 큐에 대기열에 저장되고 메세지 폴링을 통해 메세지를 수신 받아 처리할 수 있는 방식이다. AWS SQS를 프로젝트에 도입하게 된 이유는 기존에 거래 시스템에서 재고 관련 동시성 제어를 ..
오늘의 학습 키워드📚 문제 상황 글을 업로드할 때 사진과 같이 업로드할 수 있는데 현재 메소드를 두 개로 나눠놓은 상태라 글을 먼저 업로드 -> 업로드 된 ID 값을 바탕으로 사진을 업로드 -> 성공! 이런 흐름인데 사진이 업로드에 실패하더라도 글은 이미 업로드돼있는 문제가 발생했다. communityposts가 글을 업로드하는 API이고 multipart-files가 S3에 파일을 업로드하는 API이다. 사진 업로드에 실패했으니 에러 메세지와 함께 글 업로드도 되지 않아야 정상이지만 글만 업로드되고 사진은 업로드되지 않았다. 해결 방법 원인은 Content-type에 있었다. 기존에는 글 업로드만 먼저 구현했기에 application/json으로 content type을 설정했고 @RequestBody..
오늘의 학습 키워드📚 아이앰포트 아이앰포트에서 결제 관련 API, 라이브러리, 모듈을 제공해준다. https://portone.io/korea/ko?utm_source=google&utm_medium=google_sa&utm_campaign=pf_conversion_2403_kr&utm_content=homepage&gad_source=1&gclid=CjwKCAjwoPOwBhAeEiwAJuXRh_jttiDjJ_JdfAh_RUobtxOnIxwgKOLxitkJGT1HSZNB0NcgF9UjHBoC-1cQAvD_BwE 포트원 | 온라인 비즈니스 성장을 돕는 기업 포트원이 제공하는 단 한 줄의 코드로 세상의 모든 결제를 손쉽게 연동해보세요. PG사 통합결제 연동, 해외결제, 파트너 정산 관리, 결제 애널리틱스, ..
오늘의 학습 키워드📚 depcheck 리액트를 사용하다 보면 부트스트랩, mui, joyui, router, 폰트 등등 수많은 라이브러리를 설치하게 되는데 설치하면 package.json 파일에 라이브러리의 간단한 정보가 담기게 되고 package-lock.json에는 정확한 버전과 의존성 트리가 담기게 된다. 그래서 라이브러리를 설치하다 보면 의존성이 꼬여서 빌드가 안 될 때도 있고 Git에 있는 프로젝트를 가져왔을 경우에도 버전이 맞지 않아 충돌이 발생할 수도 있다. 무엇보다 가장 큰(?) 문제는 메모리 관련 문제인데 이번에 프로젝트를 배포하면서 ec2 프리티어 환경에 배포를 했는데 계속해서 빌드가 되지 않는 문제가 발생했다. 코드 상으론 문제가 없어서 리액트 관련 문제일 것이다 생각해서 npm ru..
오늘의 학습 키워드📚 리액트에서 스프링으로 Params 넘기기 @GetMapping("/search") public ResponseEntity searchCommunityPost( @ModelAttribute CommunityPostListRequest request) { return ResponseEntity.ok(communityPostService.searchCommunityPost(request)); } 커뮤니티 글을 조회하는 API이다. ModelAttribute로 동적으로 Params를 받는데 페이지네이션이 돼야 하기 때문에 page에 관한 정보와 검색어, 카테고리 등에 대한 정보가 들어간다. 리액트에서 동적으로 Params를 받은 Json 형태 객체를 api 메소드 파라미터로 넘겨주고 axi..