본문 바로가기

전체 글139

useEffect와 setState의 배치 처리 사실 저번에도 올린 글이었는데, 다시 올린다.  리액트는 state가 바뀔 때마다 가상돔 비교를 통해서 화면을 다시 그린다.  그렇다면 setState 될 때마다 화면이 다시 그려진다는 것인가? 그렇다. 그렇다면 setState가 많이 호출될 때마다 비효율적으로 동작할 수 있다는 건가? 그렇다. 하지만 꼭 필요한 setState는 당연히 써야겠지만, 대부분 아닌 경우가 많다.  첫번째, 이벤트에 발생할 때 원하는 동작을 수행하게 하고 싶은 경우때문에 예를 들어서 스크롤을 할때마다 어떠한 동작을 하고 싶다고 하면 그냥 이벤트 리스너를 추가하는 것이 아니라, 꼭 '디바운싱' 처리를 해야한다. 디바운싱이란, N초 안에 1000번의 같은 이벤트가 발생하면, 해당 이벤트 리스너에 묶인 동작을 1000번 실행하는 .. 2024. 12. 3.
useTransition * 여러 출처를 사용하였으며, 하단에 출처를 첨부합니다.  Form 제출 -> API 요청 -> 응답 처리 -> UI 반영기존의 리액트에서는 대기상태 pending states, 오류 errors, 낙관적업데이트 optimistic updates, 연속요청 sequential requests 를 수동으로 처리하였다.  예를 들어서 이런 코드가 있다고 쳐보자. function UpdateName(){ const [name, setName] = useState(''); const [error, setError] = useState(null); const [isPending, setIsPending] = useState(false); const handleSubmit = async() .. 2024. 12. 3.
훈련손실, 검증 손실, 미세조정(파인튜닝), 학습률배수, 배치크기, 에폭수 * 훈련 손실 Train Loss모델이 훈련 데이터에 대해 예측한 값과 실제 값의 차이를 나타내는 지표모델이 훈련 데이터에 얼마나 잘 맞추는지를 평가- 훈련이 진행됨에 따라서 일반적으로 감소한다.- 훈련 손실이 낮을수록 모델이 훈련 데이터에 잘 맞추고 있음을 의미한다. * 검증 손실 Validation Loss훈련 중 모델의 일반화 능력을 평가하기 위해서 사용되는 별도의 검증 데이터셋에 대한 손실값모델이 보지 못한 데이터에 대해서 얼마나 잘 예측하는지를 평가- 훈련 초기에는 감소하다가 과적합 OverFitting이 발생하면 다시 증가할 수 있음- 훈련 손실과 검증 손실의 차이가 커지면 과적합을 의심해볼 수 있음 * 학습률 배수 Learning Rate Multiplier기본 학습률에 곱해지는 값으로, 모.. 2024. 11. 27.
C#에서의 http 요청/응답/사용 Http Get 요청public async Task SendHttpGet(string url){ try{ using(HttpClient client = new HttpClient()){ HttpResponseMessage response = await client.GetAsync(url); response.EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); return responseBody; } }catch(Exception e){ Console.WriteLine(.. 2024. 11. 19.
퀀트 코드 뜯어보기 import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport requests pandas : 데이터 조작 및 분석을 위한 라이브러리numpy : 수치 연산을 위한 라이브러리matplotlib.pyplot : 데이터 시작화를 위한 라이브러리requests : http 요청을 보내기 위한 라이브러리 def fetch_crypto_data(coin_id, vs_currency, days): """ CoinGecko API를 사용하여 암호화폐의 과거 가격 데이터를 수집합니다. Parameters: - coin_id: 암호화폐의 ID (예: 'bitcoin') - vs_currency: 비교 통화 (예: 'usd'.. 2024. 11. 18.
왜 BrowserRouter는 새로고침하면 404 에러가 뜰까 우리가 페이지에 방문한다는 것은 해당 페이지의 url에다가 index.html 혹은 렌더링할 무언가를 달라고 GET 요청을 보내는 것을 뜻합니다.  근데, 해당 URL에 해당하는 곳에 원하는 것이 없다면 Not Found 404 에러가 뜨는 것이죠.  리액트로 개발을 하면 보통 처음에 BrowserRouter를 많이 씁니다.  개발할때는 새로고침해도 괜찮지만, 배포한 이후에는 새로고침하면 404에러가 뜨게 되요.  왤까요?   리액트 개발서버 ( create-react-app의 개발서버 ) 는 모든 경로에 대한 요청을 자동으로 index.html로 리다이렉트 해줍니다. 즉, 브라우저에서 어떤 경로로 접근하든 개발 서버는 항상 리액트 어플리케이션의 진입점인 index.html 을 제공해주죠. 그러니까 no.. 2024. 11. 17.
HashRouter의 #는 어떤 역할을 하는가 HashRouter의 #는 어떤 역할을 할까요. 1. 해시기반 라우팅 클라이언트 사이드 라우팅HashRouter는 URL의 해시 # 부분을 사용하여 클라이언트 측 라우팅을 구현합니다. URL 구조일반적으로 URL은 http://example.com/#/home과  같은 형태를 갖습니다. 서버 요청 회피해시 프래그먼트 ( #이후의 부분을 말합니다 ) 는 http 요청시 서버로 전달되지 않습니다. 따라서 페이지를 새로고침해도 서버측에서 404오류가 발생하지 않습니다. 이 부분이 중요하니 좀 더 자세하게 살펴볼게요. 해시 프레그먼트 #는 어떻게 서버 요청을 회피하고 404 오류를 방지하는가!  일단 해시 프래그먼트는 브라우저에서만 사용해요. 브라우저는 이 부분을 사용해서 페이지 내의 특정 위치로 스크롤하거나,.. 2024. 11. 17.
해시 라우터 그리고 package의 homepage 필드 배포를 하게 되면 서버에다가 1개만 배포할 일은 개인 개발자로서 거의 없습니다. 한 개의 서버를 빌리면 우리는 거기에다가 이것저것 다 넣고 싶어지죠. 지출을 많이 하고 싶지 않아서 그렇습니다. 이 때, 해시 라우터, package.json의 homepage 필드를 한번 쯤은 보게 됩니다. 리액트는 결국 SPA이기 때문에 어디에서 이 싱글 페이지를 돌게 할건지 꼭 명시해줘야해요.  살펴볼까요?  1. pack.json의 homepage 필드 설정에 대해서 보겠습니다. homepage 필드는 어플리케이션이 배포될 기본 경로를 지정합니다.  그리고, 빌드 시에 생성되는 정적파일 (static)들이 올바른 경로를 가리키도록 합니다. homepage를 설정하면 빌드된 파일들이 해당 경로들을 기준으로 assets를.. 2024. 11. 17.
자료형에 대해서 알아볼까요 Move 언어는 자산 관리와 보안을 중시하는 블록체인 환경에 맞추어서 다양한 자료형을 제공합니다. Move의 자료형은 크게 기본 자료형과 복합 자료형으로 나눌 수 있습니다. 1. 기본 자료형 Primitive Types 1.1 정수형 Unsigned IntegerMove는 다음과 같은 부호없는 정수형을 지원합니다.- u8 : 8비트 정수, 값 범위는 0부터 255- u64 :  64비트 정수, 값 범위는 0부터 2^64 -1 - u128 : 128비트 정수, 값 범위는 0부터 2^128-1 Move의 정수형은 모두 부호가 없기 때문에, 음수 값은 사용할 수 없으며, 정수만 사용해야 합니다. 자산의 개수나 특정 값들을 나타내기 위해 주로 사용되며, 산술 오버플로우는 Move의 검증 시스템에서 자동으로 체크.. 2024. 10. 27.
반복문을 쓸 수 없다면, 반복 작업을 어떻게 하나요? Move는 반복문 (for, while 등)을 지원하지 않지만, 재귀함수와 조건문을 통해서 반복적인 작업을 수행할 수 있습니다. Move에서 반복문을 지원하지 않는 이유는 무한 루프를 방지하고, 블록체인 환경에서의 계산 자원을 효율적으로 사용하기 위함입니다. 대신, 주어진 작업을 반복적으로 수행해야 할 경우 재귀적 접근 방식을 사용해야 합니다. 다음은 Move에서 반복문 대신 재귀를 사용하는 방법과 그 예시입니다. 1. 재귀를 통한 반복작업Move는 재귀함수를 지원하므로, 함수가 특정 조건에 도달할 때까지 자신을 호출하도록 하여 반복작업을 수행할 수 있습니다. 예를 들어서, 1부터 n까지의 합을 구할 때 재귀를 사용할 수 있습니다.module ExampleModule{ public fun sum_recu.. 2024. 10. 27.