전체 글 38

리액트 정리 3(24/06/25)

리덕스란 무엇일까?개념리덕스란? 자바스크립트 애플리케이션에서 상태 관리를 단순하게 해주는 라이브러리- 컴포넌트간 상태 공유가 간편해짐- 리액트 및 그 외의 자바스크립트 프레임워크나 라이브러리와도 사용가능 리덕스의 핵심 개념스토어 : 애플리케이션의 상태가 저장되는 곳으로 상태를 읽거나 업데이트하는 방법을 제공액션 : 상태에 어떤 변화가 필요할 때 발생하는 이벤트, 자바스크립트 객체로 type필드를 가짐리듀서 : 액션이 발생했을 때 상태 변경 함수 이전상태와 액션을 인자로 받아 새로운 상태 반환디스패치 : 액션을 스토어에 전달하는 함수(store.dispatch(action)과 같은 형식으로 사용)구독 : 상태가 변경될 때마다 특정 함수를 실행하도록 하는 메서드(store.subscribe(listener)..

리액트 정리 2(24/06/25)

비동기처리 다루기1.  비동기 처리란?비동기 처리를 하는 이유?동기(Synchronous)란 요청과 응답을 받는 시기가 일치한다는 것- 요청을 처리하는 속도는 작업마다 모두 다를 수 있기 때문에 비동기(Asynchronous)가 필요함비동기란?비동기(Asynchronous) 작업을 기다리고 있지 말고 그 동안 처리할 수 있는 일을 해놓는 것을 의미함 * 요청한 내용을 언젠가 응답해 주겠다고 약속(Promise)를 해놓은 상태에서 그럼 다른 일을 먼저 하자는 것. JS에서 비동기작업을 하는 방법?비동기작업의 방법들다양한 방법이 있지만 이번에 설명 할 3가지 방법은- Callback (함수)- Promise (객체)- async / await (키워드)다음과 깉이 있다. 1. 콜백함수- 콜백함수란? 나중(특..

리액트 정리 1(24/05/03)

리액트에 관해서리액트는 다양한 곳에서 사용을 하는 만큼 기업에서도 자주 사용하는기술 중 하나이다.리액트와 비슷한 라이브러리는 Vue, Svelte, Preact, SolidJS 등이 있다.그래서 이제부터 소개 하는 내용은 리액트에 관한 내용의 정리이다.리액트의 특징- 컴포넌트 기반의 UI 자바스크립트 라이브러리- SPA(Single Page Application)를 쉽고 빠르게 만들수 있도록 해주는 도구※ MPA는 페이지를 여러개 만들어야 하지만 SPA는 페이지는 하나 콘텐츠 여러개로 만든다. 리액트 18에서 달라진점상태 업데이트(setState)를 하나로 통합해서 배치처리를 하고 리렌더링을 진행함리렌더링 관련 성능 개선자동 배치를 수행하여 마지막에 한 번만 렌더링 가능하게 함새로운 훅을 지원함수형 컴포..

리액트에서 코드 가독성을 높이는 방법

왜 이런 주제로 공부 하였는가?리액트를 공부를 하는데 내 코드에 밑의 3가지 문제가 느껴졌다.1. 최근에 리액트를 배우면서 코드가 더럽다고 느껴졌다.2. 같은 내용이 반복되어 오히려 읽기 어려웠다.3. 가독성이 떨어져 내가 왜 이런 코드를 만들었는지 헷갈렸다. 이것을 보니 앞으로 현장에서도 실습 할 기회가 있을텐데 다른 사람들과협업을 하는 순간에도 이런 코드라면 협업하기 힘들 것이라 생각해 공부하였다. 그래서 코드 가독성을 높이는 방법은?내가 생각한 중요한 키워드나는 이 주제로 공부를 하기 위하여 검색을변수명, JS, 들여쓰기, 중복된 코드, 정리 등의 키워드를 활용하여 검색을 하였다.가독성을 높이는 방법변수명변수명을 작성하면 나는 기본적으로 a, b, c 같은 간단한 이름을 쓰던지name1, name2..

NYPC 2023 Round 1: 3번문제

메이플스토리 새로운 직업 고르기 NYPC 2023 · Round 1 메이플스토리에는 여러 가지 모험가 직업들이 있다. 메이플스토리의 팬인 당신은 여러 모험가 캐릭터를 키워봤다. 이제 안 해본 모험가 캐릭터를 키워보려고 한다. 메이플스토리에 존재하는 모든 모험가 직업과, 당신이 키워본 모험가 직업이 주어졌을 때 당신이 새로 키워볼 수 있는 모험가 직업을 모두 나열하는 프로그램을 작성하시오. 입력 형식 첫 줄에 메이플스토리에 존재하는 모든 모험가 직업의 수 N이 주어진다. (1≤N≤150) 이어지는 N 개의 줄에는 모험가 직업이 주어진다. 모험가 직업은 영어 알파벳만으로 이루어진 길이 11 이상 1515 이하인 문자열이다. 같은 모험가 직업이 두 번 이상 나오는 경우는 없다. 대문자와 소문자는 구별된다. 예..

코드업 2039:시정표 작성하기(C)

문제 설명 신입생 광곽이는 학교 시정표가 적응이 되지 않아 시정표를 작성하는 프로그램을 만드려 한다. 1교시 시작하는 시, 1교시 시작하는 분, 한 교시의 길이(분), 쉬는시간의 길이(분), 총 교시 수, n 교시 후 점심시간, 점심시간의 길이(분)가 주어질 때 시정표를 작성하시오. (단, n교시와 점심시간 사이, 그리고 점심시간과 n+1교시 사이에는 쉬는시간이 없다.) 입력 1교시 시작하는 시, 1교시 시작하는 분, 한 교시의 길이(분), 쉬는 시간의 길이(분), 총 교시 수, n 교시 후 점심시간, 점심시간의 길이(분) 가 입력된다. 최종 출력되는 시간은 24시를 넘지 않으며, 한 교시 및 쉬는 시간의 길이도 60분 미만이다. 점심 시간은 100분 이하이다. 광곽은 좋은 학교라서 수업이 일찍 끝나더라..

코드업 1981:파일 입력 처리하기(C)

문제 설명 우리는 지금까지 키보드로 입력하는 방식인 "표준 입출력"을 사용하여 왔다. 이번에는 파일을 읽어 오도록 하자. secret.dic 파일을 읽어와서 그 내용을 화면에 출력하여 보자. 이 문제를 푼 사람 말에 의하면, 이 파일 속에는 정보 올림피아드 상위권으로 올라 갈 수 있는 비법이 들어 있다고 한다. 금지 키워드 : freopen 입력 secret.dic 파일을 읽어와서. 파일의 내용을 처음부터 끝까지 그대로 출력한다. 파일을 읽어 오는 방법은, FILE *fi = fopen("secret.dic", "r"); 명령을 이용하면 된다. (freopen명령은 사용할 수 없다.) 출력 파일의 내용을 그대로 화면에 출력한다. (입력, 출력 예시 없음) 나의 코드 #include int main() {..

코드업 1510:홀수 마방진(C)

문제 설명 마방진(magic square)이란 가로, 세로, 대각선의 합이 같은 사각형을 말한다. 홀수 n을 입력으로 받아 n*n 홀수 마방진을 만들어 보자. 만드는 방법은 여러가지 방법이 있지만, 아래와 같은 방법을 이용하여 구현해보자. 구현 방법: 1. 시작은 첫 행, 한 가운데 열에 1을 둔다. 2. 행을 감소, 열을 증가하면서 순차적으로 수를 넣어간다. 3. 행은 감소하므로 첫 행보다 작아지는 경우에는 마지막 행으로 넘어간다. 4. 열은 증가하므로 마지막 열보다 커지는 경우에는 첫 열로 넘어간다. 5. 넣은 수가 n의 배수이면 행만 증가한다. 열은 변화없음. 입력 마방진의 크기인 n이 입력된다.(n은 50보다 작은 홀수인 자연수) 출력 위의 방법대로 크기가 n인 홀수 마방진을 출력한다. 입력 예시..

코드업 1640:악성 프로그램 삭제하기(C)

문제 설명 현준이는 컴퓨터 인터넷이 느린 것을 알고, 제어판에 들어가 보니 여러 악성 프로그램이 설치 되어 있었다. 현준이 컴퓨터 인터넷이 빨라지도록 도와주기 위해 제어판에 있는 프로그램을 입력하면 악성 프로그램과, 컴퓨터의 위험도를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 프로그램이 입력될 갯수 정수 n이 입력된다.(1

코드업 1602:절대값 함수(C)

문제 설명 절대값 함수를 만들어 봅시다. 입력으로 정수가 들어오면 정수로 결과를 출력하고, 실수가 들어오면 실수로 결과를 출력한다. 단, 소수점 이하에 불필요한 0은 입력되지 않는다. [리턴 타입] ABS( [인자] ) { // ..코드.. } int main() { // 명령 및 함수 호출 } 입력 정수 또는 실수 n이 입력된다. (n은 정수 또는 실수) 출력 입력된 n의 절대값을 출력한다. 실수값일 경우 불필요한 0을 출력하지 않는다. 입력 예시 -2.56 출력 예시 2.56 나의 코드 #include void ABS(double n) { if (n < 0) n = -n; if ((int)n == n) printf("%d", (int)n);// 정수면 int로 출력 else printf("%g", n..