전체 글

모르는 내용 및 아는 내용 모두 꼼꼼히 복습하여 익숙해지는 그 날까지 꾸준히 공부하겠습니다.
Spring Framework/Spring boot

[Redis] Spring Boot에서 Redis 활용하기: Redis 사용 방법, 연동, 설치

Redis란 ✔️ 메모리 기반의 데이터 저장소로, 높은 성능을 제공하는 NoSQL 데이터베이스입니다. Key, Value 구조의 비정형 데이터를 저장하고 관리할 수 있습니다. 규모가 작은, 사용자가 많지 않은 서비스의 경우에는 WEB - WAS - DB의 구조로 모든 정보를 데이터베이스에 저장합니다. 하지만 사용자가 늘어나 조회의 빈도가 늘어난다면, 데이터베이스가 과부하될 수 있고, 또한 성능 저하가 일어날 수 있습니다. 그래서 이를 개선하고자, 캐시 서버를 도입하여 데이터베이스 서버의 과부하를 줄여주는데 이때 사용할 수 있는 캐시 서버 중 하나가 Redis입니다. 캐시란 ✔️ 캐시는 한번 읽어온 데이터를 임의의 공간에 저장하여 다음에 읽을 때는 빠르게 결괏값을 받을 수 있도록 도와주는 공간입니다. 같은..

Spring Framework/JAVA

[JAVA] Java Optional.ofNullable() : Null 안전성과 간결한 코드 작성 방법

Optional 클래스란 ✔️ Java에서 Optional 클래스는 값이 있을 수도 있고 없을 수도 있는 상황을 다루기 위해 사용하는 컨테이너 클래스입니다. 이를 통해 값이 없음을 명시적으로 나타낼 수 있습니다. Optional을 사용하는 가장 큰 이유는 NullPoitnerException을 방지할 수 있습니다. Optional.ofNullable 메서드란 ✔️ ofNullable 메서드는 주어진 값이 null 인지 아닌지를 확인합니다. 값이 null이 아니면 해당 값을 가지는 Optional 객체를 반환하며, 갑이 null이면 빈 Optional 객체를 반환합니다. public class NullableExample { public static void main(String[] args) { Stri..

Spring Framework/JAVA

[JAVA] Java Stream 활용법: Filter, Map, FlatMap 예제와 함께

Stream이란 ✔️Java에서의 Stream은 데이터 컬렉션을 다루는 데 사용되는 사용 합니다. 컬렉션을 for, for-each 형태보다 더 가독성 좋게 함수형 스타일로 다룰 수 있게 도와주며, 데이터를 원하는 형식으로 변환하거나 조작하는데 효율적입니다. Filter 연산자 ✔️'filter()' 연산자는 이름 그대로 컬렉션을 돌면서 주어진 조건에 따라 스트림 요소를 필터링해주는 역할입니다. List words = Arrays.asList("apple", "banana", "cherry", "date"); List filteredWords = words.stream() .filter(word -> word.startsWith("b")) .collect(Collectors.toList()); // 결과..

Linux

[Linux] AWS에 springboot 서버 배포 흐름 이해하기 / cron, crontab 재시작 자동화 하기

유튜브 메타코딩님의 강의를 듣고 중요한 내용을 기록하고자 합니다. (좋은 강의 감사합니다. 메타코딩님) 로컬 컴퓨터에서 개발한 서버 프로그램을 배포 환경에서 실행시키는 과정에 대해 기록하고자 합니다. 해당 방법은 CI/CD를 적용하지 않는 방법으로 다른 컴퓨터에 서버 프로그램을 돌리는 방법입니다. Spring boot를 기준으로 작성합니다. AWS 배포 과정 이해하기 1. JDK Install하기 java 파일을 실행시키기 위해서는 JDK를 설치해 주어야 합니다. # apt 목록 업데이트 sudo apt update # JDK 검색 sudo apt-cache search jdk | grep openjdk-17 # JDK 설치 sudo apt install openjdk-17-jdk 2. Github에 저..

Linux

[Linux] AWS 사용을 위한 리눅스 기본 명령어 정리

유튜브 메타코딩님의 강의를 듣고 중요한 내용을 기록하고자 합니다. (좋은 강의 감사합니다. 메타코딩님) https://youtu.be/7wAudkkCedk?si=mMoPSGeW0Rr6LYja AWS를 통해 리눅스 컴퓨터를 다루기 위해 필요한 리눅스 기본 명령어를 정리하고자 합니다. 1탄 : clear, pwd, cd, ls 알아보기 # shell 비우기 clear # 현재 위치 출력 pwd # 경로 변경하기 cd # 현재 위치의 모든 파일과 폴더 출력 ls ls 명령어에 옵션으로 -l 을 추가하면 현재 위치의 파일과 폴더의 자세한 내용을 볼 수 있습니다. -rw-r--r-- : 첫 위치에 "-"는 파일임을 알림 drw-r--r-- : 첫 위치에 "d"는 폴더임을 알림 "명령어" --help 를 입력하면 ..

Linux

[Linux] nohup 사용법 및 표준 출력과 에러 로그 분리하 / AWS nohup으로 백그라운드 실행하기 &

유튜브 메타코딩님의 강의를 듣고 중요한 내용을 기록하고자 합니다. (좋은 강의 감사합니다. 메타코딩님) https://youtu.be/bi02s9Rs1Zw?si=XJsbYt79DQitZv6l nohup 명령어란 리눅스에서 프로세스를 실행한 터미널의 세션 연결이 끊어지더라도 지속적으로 동작할 수 있게 해 줍니다. nohup 명령어로 프로세르를 실행시키면, 자동적으로 로그를 남겨줍니다. (같은 파일 위치에 nohup.out에 기록됨) 만약에 로그를 다른 파일에 기록하고 싶다면 리다이렉션을 이용하여 로그 기록 위치를 변경할 수 있습니다. # nohup install sudo apt update sudo apt install nohup # nohup 명령어 사용 nohup java -jar *.jar > myl..

Spring Framework/Spring

[Spring] 스프링 파일, 이미지 업로드 / 인스타 이미지 업로드 및 해시태그 파싱하기 - MultipartFile, File

스프링을 이용해 파일 업로드하는 방법에 대해 정리하고자 합니다. 스프링 코드와 html 코드를 작성하면서 설명하겠습니다. Spring Code - 파일 업로드 처리 @Value("${file.path}") private String fileRealPath; public void imageUpload(ImageRequestDTO.ImageUploadDTO request, Long userId) throws IOException{ UUID uuid = UUID.randomUUID(); MultipartFile file = request.getFile(); String uuidFilename = uuid + "_" + file.getOriginalFilename(); Path filePath = Paths.g..

Spring Framework/Thymeleaf

[Thymeleaf] 타임리프 @{..}, |리터럴| 경로 설정, form th:action, img th:src 설정 문법

Thymeleaf를 통해 컨트롤러와 데이터를 주고받고 처리하는 과정을 공부하면서 th:action, th:src, thymeleaf 문법을 통해 객체 그래프 탐색 방법에 대해 정리하고자 합니다. html 문서를 작성하면서 동적 프로그래밍이 필요할 때가 있습니다. 이럴 때 타임리프 문법을 통해 쉽게 해결할 수 있습니다. form form 태그를 통해 컨트롤러에게 데이터 셋을 전달하여 데이터 처리를 요청할 수 있습니다. th:action ✔️ form data를 보낼 url를 설정합니다. ✔️ 서버 Controller에게 데이터 처리 요청을 합니다. @{URL 링크} ✔️ @{URL 링크} : 타임리프는 URL 링크를 @{...} 에 담아서 전달합니다. ex1) th:href = "@{/css/style/...

kylo
오늘도 열심히 - BE