일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 스파르타내일배움캠프
- 알고리즘
- 포톤
- Photon
- 유니티
- BFS
- Unity
- 이분탐색
- Unity3d
- FSM
- QueryDSL
- 구현
- 워크플로
- Firebase
- Inventory
- 언리얼엔진
- 내일배움캠프
- 순열
- 스택
- Unity2D
- 유클리드호제법
- c#
- UE4
- 해시
- unityui
- C++
- 프로그래머스
- UnrealEngine
- Today
- Total
목록Java (100)
개발 낙서장
문제 상황유닛 테스트 중 @RequestPart가 있는 API 테스트에서HttpMediaTypeNotSupportedException: Content-Type 'application/octet-stream' is not supported 오류 발생 @PostMapping("/chat-rooms") public GetChatRoomResponse createChatRoom( @RequestPart(value = "chatRoom") CreateChatRoomRequest request, @RequestPart(value = "image", required = false) MultipartFile image, @AuthenticationPrincipal Use..
Cache캐시(Cache)란 데이터를 미리 임시 장소에 저장해 두고 필요할 때 꺼내 쓰는 방법을 말한다.즉 '조회' 효율을 높이기 위한 기술이다.원본 데이터에 접근하는 비용이 크거나 지속적으로 비슷한(혹은 같은) 데이터들을 로드하는 경우에 거의 필수적으로 사용한다.캐시를 사용하지 않으면 10만 개의 글 목록을 API 호출 마다 DB에 접근하여 불러오겠지만 캐싱 처리를 하게 되면 기존 데이터는 별도 메모리에 저장해두고 새로 업데이트 되는 값만 DB에서 불러오면 되기에 매우 빠른 처리 속도를 보여준다.DB에 직접 접근하는 것보다 메모리에 저장해 캐싱하는 것이 더 빠른 이유는 저장 공간의 차이에 있다.보통 DB는 SSD 같은 디스크에 저장되는데 이는 영구적인 저장 공간이라서 속도가 느리지만 용량이 훨씬 크고 ..
JDKJDK는 자바 개발 키트(Java Development Kit)로 자바 언어를 다양하게 활용할 수 있도록 여러 클래스 및 라이브러리와 컴파일러 등 자바 환경에서 돌아가는 프로그램을 개발하는데 필요한 툴을 모아놓은 소프트웨어 패키지이다.JDK가 없다면 우리가 너무나 당연하게 쓰고 있는 List라던지 Object라던지 래퍼 클래스 등 대부분의 클래스나 라이브러리를 직접 구현해 사용해야 하고 컴파일러가 없기 때문에 라이브러리를 직접 구현했다 하더라도 프로그램을 실행할 수가 없다.물론 자바로 개발을 하려면 JDK는 필수적으로 설치하기에 JDK 없이 개발하는 일은 없다.갑자기 웬 JDK?이번 웹 개발 트랙을 시작하면서부터 JDK 17 버전을 사용해 왔는데 최종 프로젝트가 끝나 취업을 준비하는 지금까지도 '왜..
오늘의 학습 키워드📚Connection Failed진짜 환장할 오류가 발생했었다.잘 되던 웹소켓이 배포 환경에서 HTTPS 프로토콜로 바꾸니 웹소켓 연결이 되지 않는 것이다.로컬에서도 잘 되고 HTTP 프로토콜에서도 잘 동작하는데 배포 환경의 HTTPS 프로토콜에서만 동작하지 않았다.오류 체크를 위해 레포지토리를 Fork 해서 로컬에서 HTTPS 세팅을 하고 실행했는데 연결이 잘 돼서 더 당황했다. useEffect(() => { if (currentRoom !== null && stompClient === null) { const client = new StompJs.Client({ brokerURL: `ws://${window.loca..
const _0x5eef=['classList','92935nhtnYq','setAttribute','push','innerHTML','getElementById','toLowerCase','tt_adsense_top','another_category','style','//p[contains(text(),\x27[목차여기]\x27)]','1954669aacfHB','div','appendChild','toc-ym','title','forEach','DOMContentLoaded','call','addEventListener','length','insertBefore','firstElementChild','log','27309qNoTHN','62SuwPRc','parentNode','querySele..
오늘의 학습 키워드📚 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 = "..