React의 동등 비교 == , ===, Object.is 그리고 React.memo와의 상관 관계
·
React
🔑나와 다른 사람을 비교하는 것은 젓가락과 숟가락을 비교하는 거랑 다를 바 없다💡 Object.is란 무엇인가? ▶️ Object.is는 ES6에서 제공하는 기능으로 두 값이 같은 값인지 비교하는 메서드 입니다==  ===와 비슷하지만, 몇 가지 특별한 동작을 추가로 처리합니다 ❗️ Object.is의 특징: NaN은 NaN과 같다고 판단합니다 ( === 에서는 false 입니다)+0 과 -0은 다르다고 판단합니다 ( === 에서는 true 입니다)▶️ 위 Table을 보면 더 자세하게 알 수 있습니다. 느슨한 비교와 엄격한 비교라고 부르기 보다는 얕은 비교, 깊은 비교라고 더 많이 부르는 것으로 알고 있습니다.  💻 CODE// 얕은 비교const user = {name : "john"}const..
[Java8] 코딩 기초 트레이닝 Day 20 highestOneBit(), stream(), HashMap 활용
·
Java
배열의 길이를 2의 거듭제곱으로 만들기이 문제의 관건은 거듭제곱이 되겠네요. 현재 배열의 길이가 거듭제곱인지 아닌지는 어떻게 알 수 있을까요? 당연히 이미 만들어진 함수가 존재합니다. 하지만 그전에 비트 연산자에 대해서 알아보겠습니다.public static boolean isPowerOfTwo(int n){ return n > 0 && (n & (n - 1)) == 0;}위에 함수는 n의 값이 거듭제곱인지 아닌지를 알 수 있습니다.if n = 6,6 → 0110 (2진수)n - 1 = 5 → 0101 (2진수)6 & 5 = 0100 -> 4 != 0so, return false;다음과 같은 함수를 통해 거듭제곱의 유무를 확인할 수 있습니다.하지만, highestOneBit() 라는 함수를 통해 문제를 ..
[Java 8] 코딩 기초 트레이닝 Day 19 split & 정규식, ArrayList
·
Java
세 개의 구분자다음과 같은 문제 역시 어제 다뤘던 내용과 같이 split 에 관한 내용인데, 정규 표현식을 아직 배우지 않은 분들이라면, if 문으로 하나하나 필터링 해야하나 생각하실 수 있습니다.하지만 자바에는 정규 표현식이라는 것이 존재합니다. String[] result = myStr.split("[abc]"); //myStr = "baconlettucetomato";[abc] 는 대괄호 안에 포함된 문자들 중 하나의 문자와 일치하는 경우를 의미합니다.// result = ["", "onlettu", "etom", "to"]우리가 이 정규 표현식을 몰라다면 너무 번거롭게 코드를 작성했을텐데, 알고 모르고의 차이가 큰 것 같습니다. 그래서 위의 문제는 아래와 같이 풀 수 있습니다.import java..
[Java 8] 프로그래머스 코딩테스트 연습 split(), replace()
·
Java
x 사이의 개수다음과 같은 문제인데import java.util.Arrays;class Solution { public int[] solution(String myString) { return Arrays.stream(myString.split("x")) .mapToInt(String::length) .toArray(); }}위와 같은 코드를 통해 접근하게 되면 split("x")에서 맨 마지막 빈 배열을 포함하지 않아서 아래와 같이 테스트 1에서 실패하게 됩니다이때 아래와 같이 -1 인수를 추가해서 작성하게 되면 문자열 끝에 위치한 구분자 뒤에 빈 문자열도 포함하게 됩니다import java.util.Arrays;class Solutio..
Playstore 앱 배포를 위한 비공개 테스트 20명 구하기!!
·
React Native
본문에 앞서 이것은 절대 광고가 아닙니다비공개 테스트20명, 구글 앱 테스트 20명, 어플 테스터 20명 https://kmong.com/gig/543235 비공개 테스트 앱 테스터 20명 모집 구글 플레이 콘솔 - 크몽스느스마케팅 전문가의 IT·프로그래밍 서비스를 만나보세요. kmong.com비공개 테스트 모집의 어려움과 해결 과정앱 개발 후 출시 전 단계에서 비공개 테스트 20명이라는 난관을 마주하게되었습니다. 2023년 11월에 바뀐 정책으로인해 퀄리티가 너무 낮거나 무분별한 프로덕션을 막기 위함으로 보여집니다.하지만 주변에서 20명에 사람들에게 14일간 앱을 테스트해달라는건 너무 터무니없는 얘기라 생각했습니다.  주변에 20명이 있다고 하더라도, 커피 한잔씩은 사주면서 부탁을 해야할텐데, 그럼 커..
[Javascript] 콜백 함수 Callback function
·
JavaScript
콜백 함수(Callback)란 자신이 아닌 다른 함수에 인수로서 전달이 되는 함수function add(num1, num2, callback) { const sum = num1 + num2; callback(sum);}function callback(sum) { console.log("sum is :", sum);}add(2, 4, callback);Callback은 프로그래밍에서 "나중에 실행되는"이라는 의미를 가집니다.즉, Callback 함수는 다른 함수의 인수로 전달되어, 특정 시점이나 상황에 실행될 수 있는 함수를 의미합니다function add(num1, num2, callback) { const sum = num1 + num2; callback(sum);}add(2, 4, funct..
팀 성장의 기여하는 개발자되는 법 10 STEP
·
IT Trend
작은 일부터 시작하기: 팀에 빠르게 기여하는 방법회사에 처음 입사하고 사수가 있다면 너무 좋겠지만, 사수가 없는 경우도 분명 있을 것 입니다. 또한 제가 생각하는 개발자는 '자기주도적'이라는 성향이 장착되어있어야한다고 생각을 하는데, 어떤 시스템을 구현하기 위해서는 다양한 문서를 찾고, 시도해보며 시스템에 어떻게 녹여낼지가 중요한 것 같습니다. 그런 의미에서 개발자가 갖춰야할 몇가지 덕목들을 정리해보았습니다1. 관찰하기 ( 회사에 입사했는데, 아무도 일을 알려주지 않는다면? )조직과 코드를 살피며 누구와 대화해야 할지 찾기콘웨이의 법칙: “프로그램의 구조는 조직의 구조를 반영한다”조직의 특징과 흐름을 이해하자주어진 일을 하는 개발자는 경쟁력이 없다 생각합니다. 스스로 파악하고 조직의 흐름을 살피는 것은 ..
실무에서 사용하는 TypeScript 전략 및 메서드
·
React Native
TypeScript는 정적 타이핑을 제공하는 JavaScript의 강력한 상위 집합으로, 대규모 애플리케이션의 유지 보수성과 확장성을 크게 향상시킬 수 있습니다. 다음은 실제 프로젝트에서 TypeScript를 효과적으로 사용하기 위한 전략과 메서드입니다1. 인터페이스를 사용하여 타입 정의하기인터페이스는 TypeScript의 핵심 기능으로, 객체의 구조를 정의할 수 있습니다. 애플리케이션의 데이터 모델, API 응답, 컴포넌트 props 등의 구조를 정의할 때 특히 유용합니다. 이를 통해 타입에 대한 문서화와 코드 자동 완성을 제공할 수 있습니다.interface User { id: number; name: string; email: string; isActive: boolean;}2. 제네릭을 활..