본문 바로가기

반응형

전체 글

ContextAPI 쓰는 이유와 애플리케이션 동작 방식 차이 리액트 프로젝트의 동작 방식에 대해서 오늘 얘기 해 볼까 한다. 우선 contextAPI를 쓰지 않고 컴포넌트들 끼리 단계를 거져가면서 상호작용을 할 때 의 구조도를 보고있다. 간단히 바꿔서 설명하자면 컴포넌트 A, B, C, D가 있고 컴포넌트 들끼리 상태값이 영향을 주고 있는 상태라고 치면 위와 같은 방식에서는 D의 상태값이 변하면 A의 상태값이 변해야 되는데 그러기 위해 C, D 컴포넌트를 거쳐가면서 변화시켜줘야 하는 내용이다. 하지만 ContextAPI 를 사용하게 되면 음 전역변수의 개념으로 즉 전역적으로 데이터를 관리해줘야 할 때 사용 해주면 되겠다. 프로젝트의 규모가 크고 다루어야 할 데이터가 많고 변수가 많으면 용이하게 쓰이겠지만 굳이 간단한 프로젝트에서는 props를 컴포넌트들 끼리 이동.. 더보기
Typescript 변수 먼저 var 에 대해 알아볼건데 스코프 즉 범위의 차이로 알아 볼 수 있다. function outer(){ function inner(){ var score=0; } inner(); console.log(score); // 에러 내부에서 외부 } outer(); function outer(){ var score=0; function inner(){ console.log(score) // 접근 가능 외부에서 내부 } inner(); console.log(score); } outer(); 하지만 만약 if 문으로 var를 선언했을 때는 function outer(){ if(true){ var score=0; // outer 함수 내 어디서든 사용 가능 } console.log(score); } outer(.. 더보기
Typescript 컴파일 옵션들 현재 최신 브라우저만을 위한 어플리케이션 즉 자바스크립트 파일을 굳이 es5로 바꾸지 않고 es6, es7 등의 버전으로 만들수 있을 것이다. 그 때 target 이란 옵션을 이용할 수 있다. ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 위와 같이 hello2 의 타입이 변경된 것을 확인 할 수 있겠다. 이번엔 기능적으로 es6에 추가된 Promise를 이용해서 한번 차이점을 찾아보겠다. Promise 타입을 찾기위해 lib 에서 찾아준다. 결론은 나도 아직 어떠한 옵션들을 언제 정확히 써야하는지는 모르지만 ts 파일을 컴파일 할 때 추가로 옵션을 지정해줄 수 있다는 것을 알고 있으면 되겠다. 더보기
Typescript 파일 컴파일하기 Typescript를 시작하기 위해서는 우선 준비해야될 개발환경으로 nodejs와 코드편집기(본인은 VsCode)가 필요하고 1. VsCode 내의 터미널을 이용하든 깃배쉬를 이용해서 npm 패키니 매니저를 통해서 타입스크립트를 전역으로 설치해준다. (어느 파일에서든 컴파일 가능) 2. 뒤에 확장자를 .ts 로 붙여주어서 파일을 생성해준다. 3. 'tsc' 명령어(타입스크립트 컴파일 명령어) 를 이용해 컴파일하고자 하는 파일명을 붙여준다. 4. 컴파일된 js 파일이 생성되며 마무리 더보기
TypeScript 기본 개념 프론트엔드 자바스크립트를 공부하다 보면 Typescript를 많이 들어보았을 것이다. 간단히 몇가지 내용을 정리하자면 *오픈소스 프로그래밍 언어 *자바스크립트의 상위집합 (이전의 자바스크립트, 앞으로의 자바스크립트 전부 타입스크립트에 포함) *정적인 언어로 컴파일 할 떄 타입을 검사 (동적인 자바스크립트와 반대되는 개념, 프로그래밍을 할 떄 타입이 정의가 되고 검사가 이루어지고 자바스크립트는 프로그래밍을 구동되서 실행중에 타입이 결정) *장점 - 강력한 타입으로 대규모 애플리케이션 개발 할 때 용이(여러명의 개발자와 협업해서 개발 할 때 강력한 타입의 언어로 작성되서 특정한 타입을 요구하기 때문에 실수를 많이 방지, 자바스크립트 X) - 유명한 자바스크립트 라이브러리와의 편리한 사용 - 개발 도구에서의 .. 더보기
Lombok 플러그인 프로젝트 진행간 여러 객체를 만들어 내고 사용한다. 한 가지 객체에 여러 속성이 있을 수도 있고 혹은 필요한 객체 수가 많을 수가 있다. 그럴 떄 마다 Getter 및 Setter 혹은 생성자 함수를 일일이 만들어 내고 신경써야 한다면 꽤 피곤한 작업이 될겄이다. Lombok 이라는 플러그인을 이용하면 그 자동으로 게터 세터 및 기본 생성자들 귀찮은 일들을 우리 눈에 보이지는 않지만 생성해준다. 우선 사용하지 않았을 때의 코드를 보자 간단한 객체를 만들고 기본적인 메소드들을 만들어주고 Structure 도구를 이용해 간단히 요약한 것도 보일 것이다. Data 어노테이션을 붙여주었을 뿐인데 귀찮게 따로 만들어줘야 되었던 것들이 우리 눈엔 보이지 않지만 자동으로 생성이 되어 필요 할 때 쓸 수 있게 되었다... 더보기
함수와 메서드 함수란? - 하나의 기능을 수행하는 코드 - 호출하여 사용이 가능, 수행된후 값을 반환 가능 - 여러 곳에서 호출되어 사용 가능 함수 정의하기 함수는 이름, 매개변수, 반환 값, 몸체로 구성 int addNums(int num1, int num2){ int result; result = num1 + num2; return result; } 함수 만들고 호출해보기 public static int addNums(int num1, int num2) { int result; result = num1 + num2; return result; } // 반환값이 있는 int 로 반환 public static void sayHello(String greeting) { System.out.println(greeting).. 더보기
<Oracle SQL >DATABASE NOT OPEN (ORA-01109) 오늘 작업하다가 건네받은 bat 실행파일로 db 테이블을 만들려고 했는데 계속 접속에러가 났다. database not open 이라고 떠서 원인을 찾아보니 예기지 못하게 종료되거나 강제로 종료시켰을 때 등등 오라클이 열려져있는 상태에서 꺼졌을 때 정상적으로 꺼지지 않았을 때 발생하는 듯 했다. (특정 데이터피일 undo) 우선 첫번째로 ALTER DATABASE OPEN 을 실행하면 된다고 하는데 나는 그래도 작동이 안되고 특정 파일에 문제가 있다고 에러가 떠서 ALTER DATABASE DATAFIEL "에러메세지 뜨는 파일" OFFLINE DROP; 을 실행시킨뒤 database altered 메세지가 뜨면 다시 open 해주면 작동되곘다. 에러가 발생한 단계에 따라서 첫번째 방법만 써도 작동되는 .. 더보기

반응형