2024/08 16

[개발 지식] Cors 해결 방법 (React + TypeScript, Spring Boot)

React1.1 프록시 서버 사용개발 환경에서 CORS 문제를 가장 쉽게 해결할 수 있는 방법은 프록시 서버를 사용하는 것입니다.React 애플리케이션에서 프록시를 설정하면 API 요청이 동일한 도메인에서 이루어지는 것처럼 보이도록 할 수 있습니다.설정 방법: package.json 파일에 프록시 설정 추가// package.json{ "name": "my-app", "version": "1.0.0", "dependencies": { // ... }, "proxy": "http://localhost:8080" // Spring Boot 백엔드 주소}설명: 이 설정은 React 앱이 http://localhost:3000에서 실행 중일 때, API 요청을 http://localhost:808..

개발 지식 2024.08.30

[SWEA, 자바, 1983번] 조교의 성적 매기기

풀이요즘 기본 알고리즘 해결을 위한 언어를 자바로 고정하기 위해SWEA로 기초를 닦으며 이런 저런 공부를 하고 있음.아래 코드는 단순하게 테스트 케이스 만큼 특정 학생의 성적을 조회하는 문제인데뭔가 자바여서 그런지 코드가 더럽긴하다.아래 코드 내용은 별 다른게 없어 해결 방법에 대한 건 생략하지만내림차순 정렬은 Collections.reverseOrder() 메서드로 할 수 있으며,기본 타입 배열을 Collection에 해당하는 배열에기본 값으로 깊은 복사를 하고자 할 땐 Arrays.asList()를 사용하기.그리고 같은 기본 타입 배열에 깊은 복사를 하고자 할 땐 아래의 코드를 사용하기.System.Arrays.copyOf() 첫 번째 인자에는 배열두 번째 인자에는 배열의 길이를 넣기Clone()  ..

알고리즘 2024.08.29

[백준, 자바, 1072번] 게임 (이분 탐색)

풀이해당 문제를 푼 이유는 그냥 이분 탐색 문제여서 풀었으며특징적인 것을 확인했다.확인한 것으로는 무조건 작거나 같은 것을 묶기보단 가변적으로 생각 회로를 열어두는 것이좋을 것 같다는 생각을 했으며, 수학적인 점으로는 분자와 분모가 같은 값으로 더해질 경우 그에 대한 결과 값을 계속해서 커진다는 것. import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] li = Arrays.stre..

알고리즘 2024.08.27

[백준, 자바, 10988번] 팰린드롬인지 확인하기

풀이해당 문제를 푼 이유는정수로 들어온 값을 문자로 변형 후 배열로 만드는 방법에 대해 궁금해서 푼 문제로해결 방법은 아래와 같이 해결할 수 있고 해당 문제는 그 다음의 코드로 해결# 정수를 문자 배열로 변형char[] li = Integer.toString(100).toCharArray(); # 해당 문제 해결 코드import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); char[] li = br.readLine().toChar..

알고리즘 2024.08.27

[개발 지식] 이벤트 버블링(Event Bubbling)

이벤트 버블링(Event Bubbling)은 웹 개발에서 이벤트가 DOM 요소에서 발생할 때,이 이벤트가 상위 요소로 전파되는 과정을 설명하는 개념이다.이벤트 버블링의 작동 원리이벤트 발생: 사용자가 버튼을 클릭하거나 링크를 클릭하는 등 특정 이벤트가 발생한다.이벤트 전파: 이벤트가 발생한 요소(타겟 요소)에서 시작하여, 해당 요소의 상위 요소들로 순차적으로 전파된다.상위 요소 처리: 각 상위 요소는 이벤트를 감지하고, 해당 이벤트에 대한 핸들러를 실행할 수 있다.전파 종료: 이벤트는 최상위 요소인 document까지 전파된 후, 더 이상 전파되지 않는다.이벤트 버블링 예시아래는 이벤트 버블링을 보여주는 간단한 예시 코드이다. Parent Div Ch..

개발 지식 2024.08.26

[개발 지식] 체리픽(cherry-pick)

"체리픽(Cherry-pick)"은 주로 소프트웨어 개발에서 사용되며, 특정 커밋이나 변경 사항을 선택적으로 적용하는 작업을 의미.이 용어는 원래 농업에서 좋은 체리를 골라 수확하는 것에서 유래됨.체리픽의 주요 개념체리픽의 정의:체리픽은 특정한 커밋이나 변경 사항을 소스 코드의 다른 브랜치에 선택적으로 적용하는 작업이다.주로 버그 수정이나 기능 개선을 특정 브랜치에만 적용하고 싶을 때 사용된다.체리픽의 사용 사례:버그 수정: 특정 브랜치에서 버그를 수정하고, 이 수정 사항을 다른 브랜치에도 적용하고 싶을 때.기능 개선: 새로운 기능을 개발 중인 브랜치에서 특정 변경 사항을 안정적인 릴리즈 브랜치에 적용하고 싶을 때.체리픽의 예:Git에서 체리픽: Git에서는 git cherry-pick 명령어를 사용하여..

개발 지식 2024.08.25

[백준, 자바, 2512번] 예산(이분 탐색)

풀이진짜 단순한 이분 탐색 문제로각 지방 예산 요청을 정렬 후 이분 탐색 하여 해결 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int[] li = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); ..

알고리즘 2024.08.24

[백준, 자바, 2110번] 공유기 설치(이분 탐색)

풀이뭔가 문제를 제대로 이해하지 못했어서 시간이 좀 더 걸린 문제로문제 해결 방법은 정말 단순하게 이분 탐색 문제인데왠지 모르게 지난 풀이 방법으론 해결 방법에 대한 뎁스가 한 개 더 있는 듯한 느낌이었어서더 꼬이게 되어버림...그리고 이분 탐색의 결과 도출에 대한 것으로 하나 상기된 것은결과가 나왔을 경우 계속해서 탐색할 때같을 경우와 부족할 경우를 함께 묶어 처리를 하는 것을 다시 상기하게 되었음. import java.io.*;import java.util.*;public class _2110 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new I..

알고리즘 2024.08.24

[개발 지식] HTTP 응답 상태 코드(100, 200, 300, 400, 500)

1. 100 Continue100 Continue는 클라이언트가 요청을 계속해도 괜찮다는 서버의 응답을 의미한다.이 상태 코드는 요청의 일부로 큰 데이터를 전송할 때 사용된다.클라이언트가 서버에 요청을 보내기 전에, 서버가 요청의 초기 부분을 검토하고 요청을 계속 진행해도 좋다고 판단한 경우에 사용된다.용도: 클라이언트가 큰 요청 본문을 전송하기 전에 서버가 요청의 헤더를 검토하고,          요청이 진행될 수 있음을 알려준다.예시: 클라이언트가 Expect: 100-continue 헤더를 포함해 요청을 보내면,          서버는 이 상태 코드로 응답하여 요청을 계속할 수 있음을 알린다.2. 200 OK200 OK는 요청이 성공적으로 처리되었음을 나타내는 가장 일반적인 상태 코드이다.서버가 클..

개발 지식 2024.08.23

[개발 지식] 로컬 스토리지 vs 쿠키

로컬 스토리지(Local Storage)와 쿠키(Cookies)는 웹 브라우저에서 클라이언트 측 데이터를 저장하는 두 가지 주요 방법이다.각각의 특징과 차이점을 이해하면 웹 애플리케이션에서 어떤 저장 방식을 선택할지 결정하는 데 도움이 된다.1. 로컬 스토리지 (Local Storage)로컬 스토리지는 웹 브라우저에서 클라이언트 측 데이터를 저장할 수 있는 메커니즘으로, 다음과 같은 특징이 있다:저장 용량: 브라우저마다 다르지만, 일반적으로 5MB에서 10MB까지 데이터를 저장할 수 있다.만료 시간: 데이터는 명시적으로 삭제되거나 브라우저 캐시를 지우기 전까지 유지된다. 세션이나 만료 시간이 설정되지 않는다.데이터 접근: 자바스크립트를 통해 클라이언트 측에서 쉽게 접근할 수 있다. localStorage..

개발 지식 2024.08.23