알아가기 51

[React] 로고없는 기본 템플릿으로 리엑트 프로젝트 생성

초기 create-react-app으로 바로 리엑트 앱을 생성한 후 웹페이지에서 로고가 돌고 있는 모습은 참 신기했었는데 이제는 바로 지우기 바쁘다. 그래서 찾아보니 클린 생성이 있었다. 명령어 npx create-react-app my-app --template clean 위의 코드를 이용하여 필요없는 로고 및 텍스트를 제거한 기본 프로젝트를 생성할 수 있다. 트리 구조 public 및 src 폴더가 깔끔해졌다. 출력 화면 아무 코드도 입력되지 않았으니 흰색 빈 화면면 출력된다. 리엑트 파비콘과 상단 타이틀은 살아있다.

알아가기/React 2023.09.03

[Docker] MySQL Dockerfile 생성시 에서 SQL 명령어 적용 순서

커스텀 MySQL Docker 이미지를 만들기 위해 Dockerfile을 생성 중이다. 이때 MySQL 도커 이미지가 생성되는 과정에서 초기 실행될 SQL 명령문을 Dockerfile에 입력하였다. Dokcerfile에 직접 입력하면 입력 순서로 실행이 되겠지만 외부 sql 파일로 빼놓고 COPY를 통해 지정이 되었을 때 어떻게 되는지 궁금해졌다. Dockerfile 작성 실행될 SQL 명령문은 `RUN echo`로 지정한 부분과 외부 파일로 빼놓고 `COPY`를 통해 복사하여 진행한다. 외부 sql 파일 목록 명령문이 담긴 파일의 맨 앞에 실행 순서에 맞게 번호를 지정하였다. MySQL 초기 과정 Logs 모든 테스트 과정을 캡처로 담아두지 않았다. 결론적으로 SQL은 파일 이름 순서대로 실행된다는 점..

알아가기/Docker 2023.09.02

[GitHub] 이미 깃허브에 올라간 파일 및 폴더 gitignore 적용

vscode에서 Preferences에 들어가 공백을 설정하고 나니 `.vscode` 폴더가 생성되었다. 이것을 모르고 깃허브에 push 해 버리니 `.vscode`가 같이 올라가 버렸다. 뒤늦게 `.gitignore`에 추가를 하였지만 깃허브에서는 지워지지 않는다. 이미 깃허브에 올라간 파일 및 폴더를 `.gitignore`하는 방법을 찾아보고 기록한다. 이미 깃허브에 올라가버린 `.vscode` 폴더 적용 명령어 git rm -r --cached . 현재 Git 저장소에서 추적 중이던 모든 파일과 디렉토리를 인덱스(스테이징 영역)에서만 제거. git add . 현재 작업 디렉토리의 변경된 파일과 디렉토리를 스테이징 영역에 추가. git commit -m "Apply .gitignore" 스테이징 영역..

[Network] 413 Request Entity Too Large 에러 해결

413 Request Entity Too Large 에러 Spring Boot와 Thymeleaf를 이용한 파일 서버가 동작중이다. 아이피로 직접 업로드 Post를 보내면 서버에 잘 올라가는데 연결된 도메인으로 보내면 413 Request Entity Too Large가 뜬다. 밑에 nginx가 떠 있는거로 봐서는 nginx 설정 문제일테다. 기본적으로 서버의 최대 파일 크기 제한은 1MB로 설정되어있다고 한다. 따라서 아무 설정을 하지 않았으니 당연히 최대 허용량을 넘어 문제가 발생한것이다. spring.servlet.multipart.max-file-size=3GB spring.servlet.multipart.max-request-size=3GB 일단 application.properties 설정에서..

[Spring] SecurityFilterChain 로그인 후 특정 주소로 이동

Spring Security공식 문서에 나온 SecurityFilterChain 작동 방식은 기본적으로 메인 또는 로그인이 필요한 페이지에 접속하게 되면 로그인 정보가 없을때 로그인 페이지로 이동시킨다. 그 후, 아이디 및 비밀번호 입력 후 로그인을 하게 되면 이전 로그인 직전의 페이지로 되돌아간다. 현재 내가 구현하는 기능에서는 이 작동방식이 맞지 않다. 내가 필요한 기능은 로그인 페이지에서 정상 로그인 되면 정해진 특정 페이지로만 이동이 일어나야 한다. 따라서 필요한 추가 코드를 테스트해보고 기록해 둔다. 1. response.sendRedirect() 방법 구간 코드 .formLogin((form) -> form .loginPage("/login") .permitAll() .successHandle..

알아가기/Spring 2023.08.30

[Spring] Spring Boot Actuator 사용

Spring Boot Actuator는 Spring Boot 애플리케이션의 운영과 관리를 돕는 기능을 제공하는 모듈이다. 이 모듈을 사용하면 애플리케이션의 다양한 측면을 모니터링하고 관리할 수 있다. Actuator는 애플리케이션의 상태, 메트릭, 로그, 환경 설정 등에 대한 정보를 노출하며, 개발자나 운영팀이 실시간으로 애플리케이션의 상태를 파악하고 문제를 진단하는 데 도움을 준다. 주요 기능 1. Application 정보 노출: 애플리케이션의 버전, 이름, 설명 등의 기본 정보를 노출할 수 있다. 2. 메트릭 및 상태 정보: 애플리케이션의 상태를 확인할 수 있는 여러 메트릭과 지표를 노출한다. 예를 들어, HTTP 요청 수, 메모리 사용량, 프로세스 상태 등을 모니터링할 수 있다. 3. 환경 변수와..

알아가기/Spring 2023.08.29

[Java] Arrays.stream() 및 Arrays.copyOfRange() 함수

Arrays.stream() Java8에서 소개된 메서드로, 배열을 스트림으로 변환하는 기능을 제공한다. 이 함수를 사용하면 배열의 각 요소를 순차적으로 처리하고 중간 또는 최종 연산을 수행할 수 있다. 스트림은 함수형 프로그래밍의 개념을 도입하여 코드를 더 간결하게 작성할 수 있게 해준다. stream() 예제 코드 1 import java.util.Arrays; import java.util.stream.IntStream; public class ArrayStreamExample { public static void main(String[] args) { int[] numbers = { 1, 2, 3, 4, 5 }; // 배열을 스트림으로 변환 IntStream stream = Arrays.strea..

알아가기/Java 2023.08.29

[Linux] Raspberry Pi 날짜 및 시간 세팅 NTP

Raspberry Pi용 Ubuntu Server 22.04를 설치하고 NTP를 설정하는 방법 기록 현재 날짜 및 시간 확인 date 5번만 키보드 두드려 확인하기 timedatectl status 좀 더 자세히 확인하기 timesyncd.conf 편집 sudo nano /etc/systemd/timesyncd.conf 라즈베리 파이의 경우 NTP 서버 설정은 위의 경로와 파일을 따른다. nano 편집기로 해당 파일에 진입한다. FallbackNTP=time1.google.com time2.google.com time3.google.com time4.google.com 0.us.pool.org 1.us.pool.ntp.org ntp.ubuntu.com 주석 처리된 `FallbackNTP` 부분을 주석 해..

알아가기/Linux 2023.08.27

[Java] 토큰으로 분리하는 StringTokenizer

Java에서 제공하는 클래스인 `StringTokenizer`는 문자열의 형태를 지정된 구분자(delimiter)를 기준으로 하여 토큰(token) 형식으로 분리하는 역할을 한다. 이 클래스는 주로 텍스트 데이터를 파싱하거나 분리할 때 사용된다. `StingTokenizer`는 간단한 문자열 파싱에 유용하지만, 더 복잡한 문자열 처리는 String의 `split()` 메서드나 정규식을 사용하는 것이 더 적합할 수 있다. StringTokenizer 주요 메서드 hasMoreTokens(): 아직 처리하지 않은 토큰이 남아있는지 여부를 반환 nextToken(): 다음 토큰을 반환하고 내부 포인터를 다음으로 이동시킴 nextToken(String delimiter): 지정된 delimiter를 사용하여 다..

알아가기/Java 2023.08.27

[Docker] Raspberry Pi 3B+ 도커 설치

지난번 라즈베리 파이에 도커를 설치하였으나 이번에 재설치하는 과정에서 헤매게 되었다. 그래서 이런저런 설치 상태 및 문제 발생을 기록해 둔다. 일단, 결론부터 적자면, 글 작성 기준 23년 8월 26일, Ubuntu 22.04 (32bit/64bit)에서만 정상 설치 되었다. 설치 시도: Rasbian, Ubuntu 20.04 (32bit) Ubuntu 이미지 올리기 (Rasberry Pi Imager) 라즈베리 파이에 이미지를 올리는데 정말 편한 Raspberry Pi Imager를 이용한다. Ubuntu Server 22.04 LTS 를 선택한다. 정말 정말 시간을 단축시키는 설정이다. 모니터, 키보드, 마우스가 필요 없게 만드는.. 이게 Imager의 꽃. SSH를 체크하고 username과 pas..

알아가기/Docker 2023.08.26