전체 글

programming, design
상반기가 지났다. 이제 2학기 개강이다. 12월 1월 2월 3월 4월 5월 6월 7월 8월 약 8개월동안 참 많은 걸 했는데.. 모든 게 파편처럼 흩어졌다. 제작년에 만든 내 포트폴리오를 봤는데 많은 걸 추가해야한다. 한 걸 나열해보자.. ONSO 미디어아트 콘테스트 입선 천만아트포영 입선 글또 8기 소프트마에스트로 자소서 & 코테 - 코테 탈 SOPT 자소서, 면접 - 합격 멋사 자소서, 면접 - 합격 삼성 SDS 인턴 자소서 & 코테 - 서류 합, 코테 탈 SQLD 자격증 취득 SOPT 솝커톤 맘사진관 SOPT 웹잼 소피 멋사 해커톤 그땐그랬지 삼성 SDS 대학생 알고리즘 특강 삼성 SDS pro test 2회 - 코테 탈 2023 ATC 솔루션팀장 그 외에도 꾸준히 테니스 치고, 헬스하고, 전시도 ..
· Web
1+2) 앱잼에 임하는 몰입관에 관해 (어려움을 느낀 동시에, 고민하며 성장했다고 생각한다.) 앱잼은 생각했던 것보다 더 많은 고민거리가 있었다고 생각한다. 단순히 1) 서비스 완성이라는 같은 목적 아래, 2) 정해진 기간 안에 3) 각자의 해야할 일을 하면 되는 개념이 아니었다. 앱잼 안에서 1) 창업, 배포, 경험 등의 다양한 목적을 가질 수 있으며, 2) 각자 생각하는 기간이 다를 수 있고, 3) 내 것이 아닌 다른 것까지 수행할 수 있는 굉장한 다양한 선택지가 있었다. 그렇기에 참여하는 팀원에 따라 열정이나 참여율이 달랐고, 나 또한 정확한 목적의식과 열정이 부족했기에 위에 대해 고민하는 데 어려움을 겪은 것 같다. 이에 대해 나의 답을 내리기 위해 ‘내가 왜 앱잼에 참여했는가?’라는 질문을 했다..
· Web
솝트에서 웹파트원으로서, 3주치의 회고를 작성해보았다. 지금 몰두하고 있는 서비스 제작이라, 한 차례 정리해서 남겨두면 좋을 것 같다는 생각을 했다. 이에 이어서 앰잽이 끝나고 전반적인 sopt 후기와, 그와 함께한 상반기 활동(글또, 코딩테스트)에 대한 나의 전반적인 회고로 돌아볼 예정이다. 1주차 KPT 회고 Keep 지속할 것 - 코어타임 매일 참여함 → 꾸준히 와이어프레임을 따라갈 수 있음 → 지속적인 팀 팔로업이 가능했다 - 웨비들뿐만 아니라 소피와도 소통함 → 소속감, 친해지는 기분 🥴 - 트러블 슈팅이나 참고 코드를 노션에 정리하고 있음 → 나중에 참고하기 좋으니 계속 하자. Problem 문제가 되는 것 - 코어타임 때 온전한 집중을 하지 못했다. → 아마도 코어타임 이후에도 시간이 있어..
· Web/React
리액트쿼리 도입기 1. 리액트쿼리를 왜 써야할까? - 우선적으로 클라이언트 단에서 사용하는 데이터는 크게 2가지로 나눌 수 있다. 첫번째는 클라이언트 단에서 사용자에게 받는 데이터와 두번째는 서버에서 받아와 사용하는 데이터이다. 클라이언트는 2가지의 성격을 가진 데이터를 사용하기 때문에 혼용을 겪을 수 있다. 가령, 신청 폼에 입력한 값을 클라이언트가 서버에 post 해주었지만, 새로고침 했을 때 서버에 패치된 즉, update된 값이 아니라 이전에 클라 단에서 가지고 있던 이전 값을 뷰에 띄울 수 있는 문제 상황이 발생할 수 있다. 이러한 혼용을 막기 위해 서버의 데이터를 클라이언트를 가져올 때 사용할 수 있는 대안이 있는데, 그것이 리액트쿼리이다. 기본적으로 클라/서버 단의 데이터를 분리할 수 있다는..
통신을 할 때 promise로 접근해, try-catch로 오류를 처리하곤 한다. 동기식 언어인 javascript가 어떻게 비동기적인 동작을 수행하고, 에러를 처리하는 원리가 무엇인지 자세히 정리를 해보았다. 또한 promise가 탄생한 배경과, 비동기처리에 자주 쓰이는 콜백함수까지 이해해보는 시간을 가져보도록 하자. 아래의 코드 출처는 모던 자바스크립트이다. 1-1. try-catch로 에러를 잡자 (10.1) Try-catch 구문을 이용해서 try를 통해 구문을 실행하고, catch를 통해 에러를 잡았을 것이다. 아래와 같이 JSON형태에서 에러를 잡는 것이 예시가 될 수 있다. let json = "{ wrong json }"; try { let user = JSON.parse(json); //..
JS에서 함수를 잘 활용하는 법 재귀&연결리스트 / 나머지 프로퍼티 & 스프레드문법 & arguments / 전역 객체 / 객체로서 함수 바라보기 & 함수property - JS에서 재귀 합리적으로 쓰기 1) 재귀란 재귀에 대해 간단한 개념을 알아보고, js에서 어떤 식으로 재귀를 사용하면 효율적인지 알아보자. 재귀 함수가 실행되면, 실행 절차에 대한 정보는 실행 컨텍스트에 저장된다. 따라서 재귀 함수의 중첩 호출이 끝난 뒤에는 함수의 실행 컨텍스트에서 꺼내와 우리가 원하는 실행(계산 등)을 이어나가게 된다. 또한 재귀 깊이는 스택에 들어가는 실행 컨텍스트 수의 최댓값이라고 할 수 있다. 한편, 반복문을 사용하면 대개 함수 호출의 비용(메모리 사용)이 절약되지만 재귀를 사용하면 코드가 짧아지고 코드 이..
· Web
리액트와 상태관리 React에서 상태관리는 왜 필요한가? 상태란 상태란 컴포넌트 안에서 관리되는 변수를 말한다. 컴포넌트들은 서로 상태를 공유할 수 있는데, 하지만 자식간의 공유는 불가능 하기 때문에 부모를 거쳐서 상태를 받아와야 한다. 상태관리가 왜 필요한가? 실제로 한 프로젝트에서 Header에 있는 Reset 버튼에 대한 상태를 Main에 있는 CardList에 전달하기 위해 Header와 Main의 공통된 부모인 App에 Header의 상태를 전달한 뒤, App에서 Main으로 전달했다. App은 해당 State를 사용하지 않지만, 그저 Main에 전달해준다는 목적으로 상태를 넘겨받은 것이다. 이렇듯 state가 전달될 때 중간 컴포넌트는 사용하지 않는 props를 넘겨받아야한다는 문제점이 발생한..
목차 배열 배열 메소드 맵 셋 iterable 객체 구조분해할당 배열 - 배열 끝에 무언가를 해주는 메서드 * 기존 인덱스를 유지하기 때문에 빠르다 Pop : 끝 요소를 제거하고 제거한 요소를 반환 (스택에 사용) Push : 맨 끝에 요소 추가 - 배열 앞에 무언가를 해주는 메서드 * 전체 인덱스의 변경이 있기 때문에 느리다 Shift : 제일 앞 요소 제거한 뒤 반환, 남아있는 요소를 하나씩 민다 (큐에 사용) Unshift : 배열 앞에 요소를 추가 let fruits = ["사과"]; fruits.push("오렌지", "배"); fruits.unshift("파인애플", "레몬"); // ["파인애플", "레몬", "사과", "오렌지", "배"] - 배열은 순서가 있는 자료의 컬렉션임. 객체처럼 다..
이티권
ET WORLD