-
[Kotlin] 객체 배열에서 특정 Key의 값(value)만 추출하여 배열만들기Today's/DevelopStory 2023. 2. 22. 18:38
코틀린에서는 map 함수와 getOrDefault 함수를 사용하여 객체 배열에서 특정 키에 해당하는 값들만 추출할 수 있다. fun main() { val arr = arrayListOf( mapOf("a" to 1, "b" to "가", "c" to 70.5), mapOf("a" to 2, "b" to "나", "c" to 80.5), mapOf("a" to 3, "b" to "다", "c" to 90.5) ) val aValues = arr.map { it.getOrDefault("a", null) } .filterNotNull() .toTypedArray() println(aValues.joinToString()) } 이 코드는 주어진 객체 배열에서 "a"라는 키에 해당하는 값들만 추출하여 배열로 ..
-
[React] 미들웨어 사용 예시Today's/DevelopStory 2021. 7. 16. 00:14
서버와 통신을 할 때 비동기 작업을 수행하기 위해서 필요한 것이 미들웨어이다. 해당 예시에서는 미들웨어 패키지 중에서 thunk를 사용하였다. const nickCheck = (id) => { return function (dispatch) { instance .post('/api/sign/nickname', { nickname: id }) .then((res) => { dispatch(checkDup(true)); window.alert('사용 가능한 아이디입니다.'); }) .catch((error) => { dispatch(checkDup(false)); window.alert('이미 존재하는 아이디입니다.'); }); }; }; 닉네임 중복 체크를 위해 서버와 통신하는 미들웨어를 간단히 작성하였다.
-
[항해99] 5주차Week's/Review 2021. 7. 11. 20:53
개인 과제라는 긴 터널을 지나오고 이제 5주차가 끝났다. 리액트의 전반적인 데이터 흐름과, 컴포넌트 단위로 페이지를 쪼개어 작업하는 요령, 서버와의 통신하는 방법 (미들웨어를 활용한 비동기 통신) 리덕스를 사용하는 방법 등등... 정말 많은 것을 배우는 기간이었다. 주특기 기초반 / 심화반 기간 동안 하루에 18시간~20시간 가량을 공부한 것 같다. 문제는 내가 그걸 얼마나 흡수했냐는 것이겠지만... 다른사람이 본다면 정말 열심히 했구나 할 수도 있겠지만... 개인적인 감상으로는 내 이해력이 부족하고 공부하는 요령 또한 부족한 것 같았다. 과제 기한은 다가오는데 강의도 전부 듣지 못하자 마지막엔 너무 마음이 급해지기도 했다. 그동안은 항해99 를 경험하면서, 내 스스로 공부하는 방식에 크게 의구심을 가지..
-
[React] redux module 예시Today's/DevelopStory 2021. 7. 6. 02:55
//user.js (모듈) import { createAction, handleActions } from 'redux-actions'; // { 액션생성함수, 리듀서 } 작성 편의성 패키지 import { produce } from 'immer'; // 불변성 관리 편의성 패키지 import { setCookie, getCookie, deleteCookie } from '../../shared/Cookie'; //1. Actions (액션 타입 정하기) const LOG_IN = 'LOG_IN'; const LOG_OUT = 'LOG_OUT'; const GET_USER = 'GET_USER'; //2. Action Creators (액션생성함수 만들기) createAction을 사용하여 편리하게 작성하..
-
[JavaScript] promiseToday's/DevelopStory 2021. 7. 4. 22:38
promise 란? 비동기 연산이 종료된 이후 결과를 알기 위해 사용하는 객체이다. 코드의 형태 : const promise = new Promise((resolve, reject) => { if(...){ ... resolve("성공!"); }else{ ... reject("실패!"); } }); promise는 생성자 함수 Promise(new 키워드)를 통해 생성한다. 비동기 처리가 성공하면 resolve, 실패하면 reject를 호출한다. 비동기 작업을 수행할 콜백 함수를 인자로 전달받아 사용한다. 사용 예시 : let promise = new Promise((resolve, reject) => { setTimeout(() => resolve("완료!"), 1000); // 1,000 밀리세컨드 ..
-
[항해99] 4주차Week's/Review 2021. 7. 4. 20:05
어느덧 한달이 훌쩍 지나버렸다. 내 스스로 지난 주와 비교해서 달라진 점을 찾아보자면, 조금 더 항해99의 매니저님, 튜터님들과 교류를 하기 시작했다는 점이다. 그동안 주어진 강의나 과제를 일방적으로 수용하고 수행하기만 했다면, 도중에 생기는 의문점이나 궁금한 것들을 묻고 해답을 얻어가고자 노력하는 행동이 더해진 것이다. 사실 그동안 배우던 것보다 난이도가 확연하게 올라가버린 탓도 있고, 알고리즘과는 달리 내가 현업에서도 앞으로 계속 사용해야될 스킬이라는 점 때문에 막히는 부분에서도 대충대충 풀이만 보고 넘어갈 수가 없었던 것이다. 동기야 어떻든 간에, 단순히 코딩에 관련된 일 뿐만 아니라 공부하는 자세, 항해99를 대하는 마음가짐 자체에 대해서도 다시 생각할 기회가 있었다. 내가 스스로 알고자 노력하고..
-
[JavaScript] 변수와 상수Today's/Concept & Theory 2021. 7. 3. 00:13
변수/상수란, 어떠한 값(DATA)를 할당하기 위해 지정하는 임의의 키워드다. 그 중 변수는 할당된 값이 변하는 것을 말하며, 상수는 한번 할당된 값이 변하지 않는 것을 말한다. JavaScript에서 변수를 선언할 때 사용하는 구문은 var와 let이 있다. - var와 let의 차이점 : var let 같은 변수를 여러번 만드는 게 가능하며, 생략하는 것도 가능하다. 같은 변수를 여러개 만들거나 재선언이 불가능하지만, 값의 재할당은 가능하다. 재선언이 가능하다. 함수레벨 Scope를 가진다. 블록레벨 Scope를 가진다. 상수를 선언할 때에는 const 를 사용한다. const는 당연히 재선언 / 재할당이 모두 불가능하다.
-
주특기 시작, ReactToday's/Journal 2021. 7. 3. 00:01
사실 알고리즘 마라톤 기간이 끝나고, 자바 스크립트 기초문법을 대략적으로 공부한 뒤 리엑트 기초 강의를 수강하기 시작했었다. 생각보다 개념을 이해하고 익히는 시간이 오래 걸렸고, 항해99의 일정일 빡빡했기에 TIL 쓰는 것을 자꾸 미루게 되었다... 공부를 하는 과정에서 키워드를 메모장에 끄적여놓고 '시간이 날때 TIL을 작성해봐야겠다' 했지만, 그건 오판이었던 것 같다. 그 시간이라는게 좀처럼 나질 않았던 것이다... 그래서 일단 미뤄왔던 TIL을 오늘부터라도 최대한 꾸준히 작성해보려한다. 사실 중간중간 뛰어난 동기들의 결과물들이라던가, 혹은 QnA 시간에 난 이해도 못할 질문들에 기가 죽기도 하였고, 지금 내가 공부하고 있는 방법이 과연 맞는지, 현재 나의 수준이 적정한 수준인지 나의 객관적인 지표를..