╱╱╭╮╱╱╱╱╱╱╭━━━╮╱╱╱╭╮╱╭╮╱╱╱╱╱╱ ╱╱┃┃╱╱╱╱╱╱┃╭━╮┃╱╱╱┃┃╱┃┃╱╱╱╱╱╱ ╱╱┃┣━━┳━━╮┃┃╱┃┣━╮╱┃╰━╯┣━━┳━╮╱ ╭╮┃┃╭╮┃┃━┫┃╰━╯┃╭╮╮┃╭━╮┃╭╮┃╭╮╮ ┃╰╯┃╭╮┃┃━┫┃╭━╮┃┃┃┃┃┃╱┃┃╭╮┃┃┃┃ ╰━━┻╯╰┻━━╯╰╯╱╰┻╯╰╯╰╯╱╰┻╯╰┻╯╰╯

전체 글 125

[Javascript] 자바스크립트 특징

1. 자바 스크립트는 인터프리터에 의해 해석되는 스크립트 언어입니다. 2. 싱글 스레드 기반의 언어지만 비동기 처리를 지원합니다. 3. 자바 스크립트는 함수형 패러다임을 기반으로 하면서 객체지향의 문법을 쓰는 독특한 언어입니다. 이를 통해 자바 스크립트는 멀티 패러다임을 지원합니다. 자바 스크립트는 인터프리터를 사용하는 프로그래밍 언어이지만, 대부분의 웹 브라우저에는 just-in-time 컴파일러가 내장되어 있어 실행 속도가 매우 빠릅니다. 하지만 just-in-time 컴파일이란, 스크립트의 실행과 동시에 소스 코드를 이진 형태로 변환하는 기술입니다. 하지만 컴파일이 미리 처리되는 것이 아니라 런타임에 처리되기 때문에 자바 스크립트는 여전히 인터프리터 언어로 분류됩니다. 자바 스크립트는 싱글 스레드를..

[DB] 함수 종속성과 정규화(1NF, 2NF, 3NF, BCNF, 4NF, 5NF)

함수 종속성 normal form은 함수 종속성을 토대로 만들어진다. y = f(x)처럼 x에 대응되는 y값은 오직 하나인 것 처럼 relation에서 각 attribute간 함수의 성질을 만족하는 것이다. x functionally determines y X → Y iff, in every possible legal value of R, each X-value has associated with precisely one Y-value X가 R의 candidate key이면 R의 모든 attribute들은 X에 대한 FD가 성립한다. trival 종속성과 nontrivial 종속성은 2NF, 3NF을 구분하는데 중요하다. X -> Y가 성립할 때, Y가 X의 subset이면 trivial FD라고 한다...

임베디드 시스템 설계및 실험 정리

GPIO 제어 각 레지스터 마다 메모리매핑된 주소가 있다. APB2에 각 GPIO포트가 할당되있는데 할당된 주소에 offset을 더하면 해당 레지스터 주소가 된다. RCC를 사용해 사용하고자 하는 GPIO에 clock 인가 APB2 peripheral reset register 0x4002 1018 CRL, CRH (0~7, 8~15) 입출력 방향및 방식 설정, 특수 목적인지 설정 : CNFn 핀, MODE GPIOG -> CRH = (1 시스템 클럭으로 사용하거나 PLL Clock으로 사용 Real-time clock = HSE / 128 1. PLLCLK = 25 Mhz / PREDIV1 * PLLMUL 2. PLLCLK = 25 Mhz / PREDIV2 * PLL2MUL / PREDIV1 * PLL..

[React] Custom Hooks

Custom Hooks 1 아래와 같이 리액트 hook에 로직들을 추가해서 만든 함수가 커스텀 hook이다. 다른 함수처럼 reusing logic이 핵심이고 간단한 커스텀 hook 예시는 아래와 같다. 함수 이름에 use를 붙여야지 리액트가 해당 함수가 hook임을 인지해 내부에서 리액트 hooks가 사용 가능하게 된다. 아니면 안돌아간다. 파일이름은 상관 없다. 또한, 해당 hook이 hook 사용 규칙을 위반했을 때 경고가 뜬다. Hook 사용 규칙 1. 반복문, 조건문, 내부함수에서 호출하지 말 것 2. React 컴포넌트 내부에서만 호출할 것 커스텀 hook의 사용은 함수처럼 다른 컴포넌트에서 그냥 가져다 쓰면 된다. 이때 커스텀 hook에서 state를 생성한다고해서 해당 훅을 사용하는 모든 ..

Javascript/React 2023.09.18

[React] React.memo, useCallback, useMemo, Closure

React.memostate 변경으로 인해 부모 컴포넌트가 재실행 될경우 해당 컴포넌트의 모든 하위 컴포넌트가 DOM 변경과 관련없이 재실행된다. (console.log로 확인 가능)이때 하위 컴포넌트들의 필요없는재실행을 막기위해 React.memo를 사용할 수 있다. 아래와 같이 export할 때 감싸주면 된다.  React.memo는 함수형 컴포넌트에서만 사용할 수 있고해당 컴포넌트에게 넘어오는 props를 확인해 props의 값 변경이 없다면 ( === 사용 )ReactDOM은 해당 컴포넌트를 재실행 하지 않는다. 이처럼 React.memo는 최적화를 위해 사용하는데 남용하면 오히려 비용이 더 많이 들게된다.이는 App 컴포넌트가 변경될 때마다 해당 컴포넌트 기존 props와 새로운 props의 값..

Javascript/React 2023.09.09

[Spring Boot] Configuration Component (@Configuration, @Bean)

이번에는 @Configuratoin 어노테이션에 대해 알아 볼 것이다. 우선 Configuration이란? 구성이라는 뜻이다. 스프링에서도 같은 의미도 사용된다. 사용도 특별하지 않다. 다른 어노테이션들 처럼 클래스 정의부에 달아주면된다. @Configuration @Configuration 어노테이션을 달아주면 해당 클래스는 xml 설정을 대체하는 스프링 설정 클래스가 된다. (Java Config) 쉽게 말하자면, 스프링이 돌아가는데 있어서 설정을 관리하는 객체라는 말이다. 추가적으로 Bean이란 스프링 IoC 컨테이너에 등록된 객체를 말한다. Bean도 일종의 POJO이다. 크게 다를게 없다. 그런데 이때 스프링 IoC 컨테이너에 등록되어야지만, 스프링이 돌아가는데 있어서 해당 객체들을 사용 할 수..

Java/Spring Boot 2022.07.18

[Spring Boot] Repository Component (MyBatis, @Mapper, Insert, Domain)

이번에는 Spring MVC Architecture의 Model 부분과 관련된 Repository에 대해 알아 볼 것이다. 그 동안 모든 Component는 특정 어노테이션을 통해 IoC 컨테이너에 Bean으로 등록하고 어떤 Layer에서 사용 될 지 가시성 있게 표시하였다. 예를들면 @Controller 어노테이션을 통해 해당 IoC 컨테이너에 객체를 Bean으로 등록 및 Presentation Layer에서 사용될 Controller임을 명시하였다. 이처럼 그동안 어노테이션을 통해 각각 명시하였다. 그래서 Repository도 당연히 @Repository 어노테이션을 사용할 것이라고 생각 할 수 있다. 그러나 이번에 Repository를 구현함에 있어서 @Repository 어노테이션은 사용하지 않을..

Java/Spring Boot 2022.07.17

[Spring Boot] Controller Component 개념 2 (@ResponseBody, @RestController, @RequestMapping, @RequestBody, @POST 요청 )

이번에는 저번에 말했듯 또 다른 Controller Component @RestController에 대해 알아 볼 것이다. 그런데 알아보기전 사전의 복습이 필요하다. 왜냐하면 지난번에 알아봤던 @Controller를 통해서 @RestController가 무엇인지 알아 볼 것이기 때문이다. 복습 지난번에 @Controller는 view 요청을 handle 할 때 사용 한다고 했다. @Controller 내부의 메소드가 어떤 값을 반환하면 그 값은 View Resolver에게 전달되어 view 파일의 절대경로가 만들어진다고 했다. 해당 메소드는 문자열 "index" 를 반환한다. 만약 이때, index.html을 render하고 싶은게 아니라 "index" 문자열 자체를 응답해 줘야 하는 경우도 있다. 응답..

Java/Spring Boot 2022.07.17

[Spring Boot] Controller Component 개념 1 (@Controller, @GetMapping, @RequestParam, GET 요청 )

이번엔 Spring MVC에서 C를 담당하고 있는 Controller Component에 대해 알아 볼 것이다. 이때 Component란? 구성요소라는 뜻으로 독립적인 단위 모듈을 뜻한다. 스프링 부트에선 IoC 컨테이너에 등록된 클래스를 뜻한다. @Component 어노테이션을 사용해 직접 작성한 클래스를 IoC 컨테이너에 등록 할 수 있다. 추가적으로 이때 IoC 컨테이너에 등록된 객체를 Bean이라고 한다. 이제 Controller Component에 대해 알아보겠다. Controller Component란? Client의 요청을 직접적으로 받는 Component이다. Cleint가 url을 통한 요청을 보내면 해당 url에 매칭되는 Controller가 해당 요청을 handle한다. 소스코드에서 ..

Java/Spring Boot 2022.07.16

[Spring Boot] Service Component 개념 (@Service, @RequiredArgsConstructor)

이번엔 Spring MVC에서 Model과 관련된 Service Component에 대해서 알아보겠다. 흐름의 순서는 Controller -> Service -> Repository라서 Controller를 먼저 알아야 하지만 Controller와 관련된 개념을 최대한 제외하고 Service 자체를 먼저 알아보겠다. 우선 스프링부트에서 Component가 무엇을 뜻하는지 먼저 알아야한다. 이때 Component란? 구성요소라는 뜻으로 독립적인 단위 모듈을 뜻한다. 스프링 부트에선 IoC 컨테이너에 등록된 클래스를 뜻한다. @Component 어노테이션을 사용해 직접 작성한 클래스를 IoC 컨테이너에 등록 할 수 있다. 이때, IoC 컨테이너에 등록되어 IoC가 관리하는 객체를 Bean이라고 한다. 이번에..

Java/Spring Boot 2022.07.16