본문 바로가기

전체 글99

제곱근 값을 소수점 두 자리까지 리턴하기 : feat. 바빌로니아 법의 점화식, parseInt( )와 Number( )의 차이 📜 문제 수를 입력받아 제곱근 값을 소수점 두 자리까지 리턴해야 합니다. ⚠️ 주의사항 Math.sqrt 사용은 금지됩니다. ✍🏻 내 풀이 function computeSquareRoot(num) { // pseudo code // let originNum = 9; // let approxNum = originNum / 2; // while((approxNum * 2) !== originNum){ // approxNum = (approxNum + (originNum / approxNum) / 2) // } let approxNum = num / 2; while((approxNum ** 2) !== num){ if(Number((approxNum ** 2).toFixed(2)) === num) { brea.. 2023. 4. 6.
SOP와 CORS에 대해서 설명해 주세요. 👩🏻‍💻 Same-Origin Policy와 CORS에 대해서 설명해 주세요. 💁🏻‍♀️ 요약하자면 , SOP는 '동일 출처 정책'으로, 같은 출처의 리소스만 공유가 가능하다는 정책이며, CORS는 '교차 출처 리소스 공유' 입니다. 브라우저는 SOP에 의해 기본적으로 다른 출처의 리소스 공유를 막지만, CORS 설정을 통해 접근 권한을 얻을 수 있습니다. SOP(Same-Origin Policy) SOP의 출처는 프로토콜, 호스트, 포트의 조합으로 되어 있는데, 이 중 하나라도 다르면 동일한 출처로 보지 않습니다. 덕분에 잠재적으로 해로울 수 있는 문서를 분리함으로써 공격받을 수 있는 경로를 줄여주기 때문에 해킹 등의 위협으로부터 안전해질 수 있습니다. 기본적으로 모든 브라우저는 SOP 정책을 사용하고.. 2023. 4. 5.
아이소그램인지 여부를 리턴하기 📜 문제 문자열을 입력받아 아이소그램인지 여부를 리턴해야 합니다. 아이소그램(isogram)은 각 알파벳을 한번씩만 이용해서 만든 단어나 문구를 말합니다. ⚠️ 주의사항 - 빈 문자열을 입력받은 경우, true를 리턴해야 합니다. - 대소문자는 구별하지 않습니다. ✍🏻 내 풀이 function isIsogram(str) { // 대소문자 구분을 없애기 위해 문자를 소문자로 바꿔주는 새로운 문자를 할당하는 변수 let newStr = str.toLowerCase(); // true와 false를 나타낼수 있는 result변수를 선언 let result = true; // str의 길이가 0이면 if(str.length === 0){ // result = true를 반환 return result; } for.. 2023. 4. 5.
불안하고 조급해서 중요한 것을 놓치지 말자 불안 인생을 조금 더 살다 보니 느끼는 건, 생각보다 조급함과 불안 때문에 놓치는 것들이 너무 많다는 것이다. 불안해서 나에게 소중한 관계나 건강보다 눈앞에 닥친 일을 더 먼저 하게 되거나, 불안해서 눈앞에 있는 일마저도 집중하지 못하기도 한다. 마음이 자꾸 벌어지지도 않을 미래에 가있으니 현재에 집중하지 못한다. 미래에 대한 불안은 보이지 않는 것이기에 더 무시무시하고 커 보이기 때문이다. 이럴 때일수록 나에게 소중한 것들, 지금 내가 집중해야 하는 것들에 집중하면 된다. 나답게 저녁을 먹으면서 예능에 나온 장항준을 보았다. 그는 지난 밤에 잠을 설쳐서 피곤했던지, 촬영중임에도 식당에서 음식을 기다리며 선베드에 기대어 쉬고, 하고 싶은 것을 자유롭게 하는 것 같았다. 워낙 장항준의 여유로운 마인드는 자.. 2023. 4. 4.
클라이언트의 액션에 따라 각기 다른 HTTP 요청을 서버로 보내고, HTTP 요청에 담아 보낸 단어를 소문자 또는 대문자로 응답을 받아 화면에 보여 주기 📜 Bare minimum requirements 클라이언트의 액션(버튼 클릭)에 따라 각기 다른 HTTP 요청을 서버로 보내고, HTTP 요청에 담아 보낸 단어를 소문자 또는 대문자로 응답을 받아 화면에 보여 줍니다. 💡 조건 Endpoint(URL) Method 기능 /lower POST 문자열을 소문자로 만들어 응답해야 합니다 /upper POST 문자열을 대문자로 만들어 응답해야 합니다 - POST에 문자열을 담아 요청을 보낼 때는 HTTP 메시지의 body(payload)를 이용합니다. - 서버는 요청에 따른 적절한 응답을 클라이언트로 보내야 합니다. - CORS 관련 헤더를 OPTIONS 응답에 적용해야 합니다. - 클라이언트의 preflight request에 대한 응답을 돌려줘야 합니다. .. 2023. 4. 4.
React의 props와 state에 대해 설명해 주세요. 👩🏻‍💻 React에서 props와 state의 차이점은 무엇인가요? 💁🏻‍♀️ 요약하자면 , props와 state는 모두 JavaScript의 객체이며 두 객체 모두 렌더링 후 결과물에 영향을 주는 정보들을 가지고 있지만, 한 가지 차이가 있습니다. props는 외부로부터 전달받은 값으로 변할 수 없는 값인 반면, state는 함수 컴포넌트 내부에서 변화하는 값입니다. 각 특징으로는, (1) props - React에서 컴포넌트는 부모 컴포넌트로부터 props를 받고 이 props는 상속받는 컴포넌트 내에서 수정이 불가합니다. - 데이터의 뿌리가 자기 자신이 아닌, 즉 외부로부터 전달받기에 함부로 변하지 않는 값인 읽기 전용 값입니다. (2) state - 자기 자신의 컴포넌트에서 만들어 낸 데이터이.. 2023. 4. 4.
num1을 num2로 나눈 나머지를 리턴하기 📜 문제 두 수(num1, num2)를 입력받아, num1을 num2로 나눈 나머지를 리턴해야 합니다. ⚠️ 주의사항 - 나눗셈(/), 나머지(%) 연산자 사용은 금지됩니다. - 0은 어떤 수로 나누어도 나머지가 0입니다. - 어떤 수도 0으로 나눌 수 없습니다. 이 경우 'Error: cannot divide by zero'를 리턴해야 합니다. ✍🏻 내 풀이: for문 사용 function modulo(num1, num2) { let result = 0; // 만약 num2가 0이면 if (num2 === 0) { // 'Error~'를 리턴 return 'Error: cannot divide by zero' } // num2 * i = num1 for (let i = 0; i < num1; i++) .. 2023. 4. 4.
Library vs. Framework 차이점을 확실하게 정리하기 0. 들어가기에 앞서 누군가 나에게 라이브러리와 프레임워크 간의 차이를 물어본다면 한 마디로 정리할 수 있을까? 답은 아니었다. 개발을 공부하다 보면 이 세 가지를 순차적으로 배우지만 결론적으로 각각이 무엇인지, 차이는 또 무엇인지 모른다면 확실하게 짚고 넘어가보자. 1. 라이브러리(Library) 란? Library는 단어 그대로 도서관이다. 응용 프로그램 개발을 위해 필요한 기능(함수)들을 모아 놓은 소프트웨어다. 비유하자면, 자동차가 굴러갈 때 ( = 프로그램이 제작되어 돌아갈 때) 필요한 바퀴, 헤드라이트, 에어백 등이라고 할 수 있다. 재사용이 필요한 기능으로 반복적인 코드 작성을 없애기 위해 언제든지 필요한 곳에서 호출하여 사용할 수 있도록 Class나 Function으로 만들어진 것이다. 가.. 2023. 4. 2.
Notion’s Growth 🍎 Today's Expression - intuitive: 직관적인 - synthesize: 합성하다 - Gen Zers: Z세대 - That said: 그렇긴 하지만 - praise: 극찬하다 - distraction: 혼란 - quintupled: 다섯 배 - be viral on: 입소문이 나다 - influx: 유입 - overhauling: 정비 - intrigue: 음모 - straining: 긴장 - trajectory: 궤도 - aesthetically: 심미적으로 - The jury is out on whether: 아직은 알 수 없다 - piqued: 흥미를 돋우다, 감정을 상하게 하다 (ex. The new Van Gogh exhibit at the museum piqued my i.. 2023. 4. 1.
푸시가 안될 땐, 일단 'stash'로 숨기자 🤔 오늘의 삽질 : 푸시가 왜 안되지? VScode 터미널에 git push를 입력하고 푸시와 커밋을 하려고 했더니, 아래와 같은 error를 만났다. 알아보니 git stash 명령어를 사용해 현재 작업을 일시적으로 저장해두고 push를 하면 해결된다고 한다. error: failed to push some refs to 'https://github.com/ella-yschoi/TIL.git’ 💡 해결 방법 1. stash로 현재 작업을 일시적으로 저장한다. git stash 2. pull을 한다. # 아래 명령어를 복사하되, 본인 branch가 master가 아닌 main이라면 변경하세요 git pull origin master 3. 다시 push를 한다. # 아래 명령어를 복사하되, 본인 branc.. 2023. 3. 31.
각 요소들이 그 이전의 요소들의 합보다 큰지 여부를 리턴하기 📜 문제 수를 요소로 갖는 배열을 입력받아 각 요소들이 그 이전의 요소들의 합보다 큰지 여부를 리턴해야 합니다. ⚠️ 주의사항 - boolean 타입을 리턴해야 합니다. - arr[i]는 arr[0]부터 arr[i-1]까지의 합보다 커야 합니다. ✍🏻 내 풀이 function superIncreasing(arr) { // 초기값 설정 let sum = arr[0]; // 1번째 인덱스부터 반복해서 더해주다가 for (let i = 1; i < arr.length; i++) { // sum이 다음 인덱스보다 크거나 같다면 if (arr[i] 2023. 3. 31.
2차원 배열에서 특정 문자열의 위치정보를 요소로 갖는 배열 리턴하기 📜 문제 2차원 배열(배열을 요소로 갖는 배열)을 입력받아 'B'의 위치 정보를 요소로 갖는 배열을 리턴해야 합니다. ⚠️ 주의사항 - arr, arr[i]의 길이는 다양하게 주어집니다. - 항상 한 개의 문자열 'B'가 존재합니다. ✍🏻 내 풀이 function findBugInApples(arr) { // 문자열의 행을 순회 for(let i = 0; i < arr.length; i++) { // 문자열의 열을 순회 for(let j = 0; j < arr[i].length; j++) { // 해당 행열에 B가 있다면 if (arr[i][j] === 'B') { // 인덱스 리턴 return [i, j]; } } } } 💡 알아두면 좋을 개념 중첩 반복문 (중첩 for문)을 활용 for(let i =.. 2023. 3. 29.