일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스파르타내일배움캠프
- QueryDSL
- UnrealEngine
- Unity2D
- 스파르타내일배움캠프TIL
- 알고리즘
- Photon
- 내일배움캠프
- Inventory
- 언리얼엔진
- Firebase
- unityui
- 순열
- 유니티
- 해시
- Unity3d
- 유클리드호제법
- 스택
- 포톤
- 구현
- FSM
- c#
- 문자열
- BFS
- 프로그래머스
- 워크플로
- UE4
- Unity
- 이분탐색
- C++
- Today
- Total
목록Java (104)
개발 낙서장

Redis를 활용해 사이트에서 검색된 검색어 중 가장 많이 검색된 검색어 10개를 출력하는 기능을 구현하고자 한다.왜 Redis?사실 그냥 DB에 검색어 Count로 저장해도 되겠지만 굳이 Redis를 사용하는 이유가 뭘까속도가 빠름Redis는 In-Memory 기반 DB이기에 다른 별도 저장소(디스크)에 저장되는 DB에 비해 읽기/쓰기 속도가 매우 빠르다.유연한 자료구조기본적으로 Key-Value 형태로 저장되지만 String, List, Set, Hash, Sorted Set, JSON 등 다양한 자료구조를 지원한다.특히 이 중에서 Sorted Set을 지원하기에 인기 검색어 같은 랭킹 시스템 구현이 용이하다.쉽고 간편한 구현Redis 관련 라이브러리도 즐비하고 커뮤니티나 레퍼런스 등 참고할만한 자료..

책을 검색하고 조회할 수 있는 간단한 기능을 만들어 봤다.JSP를 활용했으며 네이버 오픈 API를 통해 도서 정보를 가져왔다.구조는 다음과 같다.클라이언트에서 키워드로 검색서버에서 키워드를 가지고 오픈 API 호출받은 데이터를 JSON으로 반환JSP에서 데이터 출력검색 " method="get"> 검색 JSTL의 태그 중 하나인 c:url을 사용해 해당 페이지 주소를 호출하도록 했으며 form과 input을 통해 입력값을 쿼리스트링으로 넘겨줄 수 있게 하였다.a href가 아니라 c:url 태그를 사용하는 이유는 Context Path 때문이라고 한다. 유동적인 서버 상황에 따라 경로를 찾아주기 때문에 유지보수 측면에서 매우 좋은 ..

JSP란?JSP(Java Server Pages)는 Java를 기반으로 한 서버 측 웹 개발 기술로, HTML 내에 Java 코드를 작성하여 동적인 웹 페이지를 생성할 수 있는 기술이다.JSP는 서블릿(Servlet)의 확장 개념으로, 사용자가 웹 서버에 요청을 보내면 서버에서 JSP 파일을 컴파일하여 결과를 HTML로 반환해준다.여기서 서블릿은 자바에서 HTML 코드를 작성하여 웹 페이지를 생성하는 기술이다.JSP의 주요 특징HTML과 Java의 결합HTML 코드에 Java 코드를 삽입해 동적인 데이터 처리와 화면 구성이 가능서블릿의 대체 역할기존 서블릿 코드보다 읽기 쉽고 관리가 편리함JSTL 및 커스텀 태그 지원JSP 표준 태그 라이브러리(JSTL)로 재사용성과 코드 간소화MVC 패턴 구현JSP는 ..
자바의 래퍼 클래스에는 compareTo라는 메소드가 있다.두 객체를 비교하여 int 형식으로 비교 결과값을 반환하는 메소드이다.다만, 재밌는 점이 있는데 숫자형과 문자형 두 경우에 따라 비교 기준이 달라진다.숫자형의 경우 -1(작음), 0(같음), 1(큼)을 반환하고 문자형의 경우 0(같음) 외 다양한 기준에 따라 음수와 양수를 반환한다.숫자형 public static void main(String[] args) throws Exception { Integer a = 0; Integer b = 2; System.out.println(a.compareTo(b)); // 0, 2 => -1 System.out.println(a.compareTo(b ..
문제 상황유닛 테스트 중 @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..