2023-04-17 1. 방법 JUnit은 독립된 환경에서의 테스트를 지원하기 때문에 테스트의 순서가 보장되지 않는다. 때문에 동일한 객체 참조가 있을 경우에는 테스트 케이스들의 순서를 보장해주어야 하는 경우가 있는데, 아래의 예제를 보자. import org.junit.FixMethodOrder; import org.junit.Test; public class TestCase1 { static int number1 = 0; @Test public void a1_test(){ number1 += 1; System.out.println("test1 =================================" + number1); } @Test public void a2_test(){ number1 += ..
2023-04-13 1. useEffect 리액트를 기존에 사용해봤으면 해당 함수가 어떠한 기능을 수행하는지 알 수 있을 것이다. 해당 함수를 첫번째 매개 값으로는 수행할 함수를 받으며, 두번째 매개 값으로는 배열을 받는데 해당 배열에 있는 값이 변경될 경우에 첫번째의 있는 함수가 실행되게 된다. 여기서 useEffect의 비교 대상은 getServersideprops 이기 때문에 첫번째 매개 변수는 fetch 형태로 백엔드 서버에서 데이터를 가져오는 함수라고 가정해보자. import React, { useState, useEffect } from 'react'; function MyComponent() { const [data, setData] = useState(null); useEffect(() =..
2023-04-05 1. 방법 기존에는 아래의 코드를 사용했었다. useEffect(() => { if (performance.navigation.type === 1) { console.log('Page was refreshed'); // Do something when page is refreshed } }, []); 하지만 현재 performance.navigation.type 는 deprecated 되어 다른 방안을 찾아야 했는데 아래와 같은 글을 발견했다. https://stackoverflow.com/questions/58652880/what-is-the-replacement-for-performance-navigation-type-in-angu lar What is the replacement..
2023-03-22 1. 정의 공식문서에 따르면 TypeScript에서 Object는 하나로 정의 되는 타입이 아니라고 한다. 아래의 코드를 살펴보자. interface Pointlike { x: number; y: number; } interface Named { name: string; } function logPoint(point: Pointlike) { console.log("x = " + point.x + ", y = " + point.y); } function logName(x: Named) { console.log("Hello, " + x.name); } const obj = { x: 0, y: 0, name: "Origin", }; logPoint(obj); logName(obj); Poi..
2023-03-15 1. 방법 사용 방법은 아래와 같다. interface는 대부분 type 키워드와 동일한 역할을 하지만, Object 객체 타입을 명시할 때 사용하는 경우가 많다. interface Person { firstName: string; lastName: string; } function greeter(person: Person) { return "Hello, " + person.firstName + " " + person.lastName; } 객체 지향적인 언어를 사용해 봤다면 interface를 class가 받아 구현체로 사용할 수도 있다. 여기서 키워드 implements 를 사용하는데 type 역시 해당 키워드 사용이 가능하다. class Player implements Person..