반응형

전체 글 357

6.공주구하기(큐)

📌강의 정리 큐를 사용하는 문제이다. 처음에 주어진 길이만큼 배열을 만든다. 그 다음 반복을 돌면서 주어진 숫자만큼 앞에서 shift하고 그 숫자를 뒤로 push한다. 이후 주어진 숫자의 반복이 끝나면 한번더 shift 하고 그걸 배열의 길이가 1일때까지 반복하다 길이가 1이 되면 배열의 숫자를 반환한다. 📌느낀점 오랜만에 잘 푼 문제인 것 같다. 디테일이 살짝 아쉽지만 그건 이제부터 조금씩 챙기기로 하고 우선 문제를 풀었다는 점이 뿌듯하다. Array.from을 머리에 잘 새겨놓자. //나의코드 //강사님 코드

[항해99] TIL 사전과제 스터디 D-16

어제에 이어서 오늘도 계획을 짜는 날이 된 것 같다. 여러가지로 많은 것을 느꼈다. 우선 항상 명심해야하는게 input과 accustom은 최대한 짧게 가져가고 output을 길게 잡아야한다는 것이다. 계속해서 상기해야 안 잊고 잘 유지할 수 있을 것 같다. input과 accustom은 짧게 여러번 하는것이 효과적이다! 리액트 공부의 방향성 지금까지는 그저 책에 있는 내용을 공부하며 블로그에 포스팅한게 다였다면 이제는 기초부터 다시 쌓아가며 새롭게 시작해야겠다는 생각이 들었다. 리액트는 몇번을 반복해도 늘 새롭고 어렵기에… 그래도 어제 계획했던 애자일 방법론을 적용해서 오늘 한번 실천해봤다. 생각보다도 훨씬 더 효과적이고 나에게 잘 맞는 방법인 것 같다. 적극 활용해야겠다. 계획을 크게 잡는 것 보다 ..

항해99 2022.06.26

new 연산자와 생성자 함수

객체 리터럴 {...} 을 사용하면 객체를 쉽게 만들 수 있습니다. 그런데 개발을 하다 보면 유사한 객체를 여러 개 만들어야 할 때가 생기곤 합니다. 복수의 사용자, 메뉴 내 다양한 아이템을 객체로 표현하려고 하는 경우가 그렇죠. 'new' 연산자와 생성자 함수를 사용하면 유사한 객체 여러 개를 쉽게 만들 수 있습니다. 생성자 함수 함수 이름의 첫 글자는 대문자로 시작합니다. 반드시 'new' 연산자를 붙여 실행합니다. function User(name) { this.name = name; this.isAdmin = false; } let user = new User("보라"); alert(user.name); // 보라 alert(user.isAdmin); // false new User(...)를 써..

5.쇠막대기(스택)

📌강의 정리 조건문을 잘 써야하는 문제이다. ()가 나온다면 10중8,9는 스택으로 풀리는 문제이다. “(”가 나오면 스택에 쌓아주고 “)”가 나온다면 바로 전의 것이 “(”이었는지 “)”였는지 확인해 “(”였으면 스택을 pop하고 answer를 stack.length만큼 더해주고 “)”였다면 그냥 pop만 해준다. 📌느낀점 나는 이번에도 쉬운 문제를 굳이 어렵게 풀었다. 그냥 answer를 조건마다 해줄게 아니고 stack의 길이만큼만 레이저가 왔을 때 딱딱 더해주면 되는건데.. 깊이가 부족했다. 좀 더 깊게 생각해서 코드를 간결하게 표현할 수 있도록 하자. //나의코드 //강사님 코드

[항해99] TIL 사전과제 스터디 D-17

오늘은 순전히 계획을 짜는 날이었다. 여러가지로 생각이 복잡하고 어떻게 해야할지 몰라서 졸기도 하고 다른의미로 코딩할때만큼 힘든 하루였다. 뭔가 노없이 바다위에서 표류하는 기분 그래도 나 나름의 방법을 찾은 것 같다. 핵심은 애자일하게 성장하기라는 한 블로그 포스팅이었다. https://wbluke.tistory.com/31 애자일하게 성장하기 애자일하게 성장하기 얼마 전에 우아한테크코스 2기 분들을 만나서 발표했던 내용을 조금 다듬어서 글로 한번 남겨보고자 한다. 개인적으로 발표를 준비하면서도 지난 1년 간의 경험과 성장하 wbluke.tistory.com 예전부터 애자일방법론에 관심이 많았었는데 그 결실이 오늘에서야 맺어진건지 아니면 저 포스팅이 효과적이었던건지 나에게 맞는 방법을 찾은 것 같다. 그..

항해99 2022.06.25

메서드와 this

객체는 사용자(user), 주문(order) 등과 같이 실제 존재하는 개체(entity)를 표현하고자 할 때 생성됩니다. let user = { name: "John", age: 30 }; 자바스크립트에선 객체의 프로퍼티에 함수를 할당해 객체에게 행동할 수 있는 능력을 부여해줍니다. 메서드 만들기 객체 user에게 인사할 수 있는 능력을 부여해 줍시다. let user = { name: "John", age: 30 }; user.sayHi = function() { alert("안녕하세요!"); }; user.sayHi(); // 안녕하세요! 함수 표현식으로 함수를 만들고, 객체 프로퍼티 user.sayHi에 함수를 할당해 주었습니다. 이제 객체에 할당된 함수를 호출하면 user가 인사를 해줍니다. 이렇..

4.후위식 (postfix) 연산(스택)

📌강의 정리 주어진 문자열에서 반복문으로 하나씩 뽑아 isNaN을 써서 숫자이면 스택에 넣어주고 문자이면 pop 2번과 조건문 4개를 이용해 계산하여 스택에 넣어준다. 스택에 남은 한개의 숫자가 답이다. 📌느낀점 나는 쉬운 문제를 굳이 함수를 써서 어렵게 풀었다. 가끔은 복잡하다 생각되는 풀이가 사실은 간단한 풀이일 수도 있기에 좀 더 깊게 생각해보는 것이 필요한 것 같다. 또한 isNaN의 쓰임새도 잘 생각해두어야 겠다. //나의코드 //강사님 코드

[항해99] TIL 사전과제 스터디 D-18

부끄럽다 항상 블로그에 겸손하자 뭐하자 했는데 오늘 내가 또 참 자만심에 도취되어있었다는 걸 느꼈다. 계기는 오늘 계속 공부하던 api와 url에 관하여 페이지를 동적으로 생성하는 기능을 공부하고 있던 거였다. 아무리 공부를 해도 이 부분에 대해 이해는 커녕 나중에 구현하라 하면 구현할 수 있을지도 의문이 들정도로 어려웠는데 나중에 팀에 백엔드쪽을 희망하시는 분께 설명을 듣고 전에 띵했던 것처럼 이번에도 정말 많은 것을 깨달았다. 배울점이 많다. 그것이 무엇이냐 그 팀원분께서는 이해를 중요시했었는데 나는 우선 구현을 중점으로 하고 빠르게 익힌뒤 이해를 하자고는 말했었다. (근데 지금 생각해보면 생각보다도 훨씬 더 구현중점으로 생각했던 것 같다.) 그래서 이번에 깨달은건 백엔드와 프론트엔드는 코드적으로나 ..

항해99 2022.06.25

18. 리덕스 미들웨어를 통한 비동기 작업 관리(2)

redux-thunk Thunk는 특정 작업을 나중에 할 수 있도록 미루기 위해 함수 형태로 감싼 것을 의미합니다. 예를 들어 주어진 파라미터에 1을 더하는 함수를 만들고 싶다면 다음과 같이 작성할 것입니다. const addOne = x => x + 1; addOne(1); // 2 이 코드를 실행하면 addOne을 호출했을 때 바로 1 + 1이 연산됩니다. 그런데 이 연산 작업을 나중에 하도록 미루고 싶다면 어떻게 해야 할까요? const addOne = x => x + 1; function addOneThunk (x){ const thunk = () => addOne(x); return thunk; } const fn = addOneThunk(1); setTimeout(() => { const va..

가비지 컬렉션

자바스크립트는 눈에 보이지 않는 곳에서 메모리 관리를 수행합니다. 원시값, 객체, 함수 등 우리가 만드는 모든 것은 메모리를 차지합니다. 그렇다면 더는 쓸모 없어지게 된 것들은 어떻게 처리될까요? 지금부턴 자바스크립트 엔진이 어떻게 필요 없는 것을 찾아내 삭제하는지 알아보겠습니다. 가비지 컬렉션 기준 아래 소개해 드릴 값들은 그 태생부터 도달 가능하기 때문에, 명백한 이유 없이는 삭제되지 않습니다. 예시: 현재 함수의 지역 변수와 매개변수 중첩 함수의 체인에 있는 함수에서 사용되는 변수와 매개변수 전역 변수 기타 등등 이런 값은 *루트(root)*라고 부릅니다. 루트가 참조하는 값이나 체이닝으로 루트에서 참조할 수 있는 값은 도달 가능한 값이 됩니다. 전역 변수에 객체가 저장되어있다고 가정해 봅시다. 이..

반응형