전체 글 169

[ Java ] - 프로세스와 쓰레드 - 01)

[ Java ] - 프로세스와 쓰레드 - 01) 프로세스란? * 프로그램 설치 시 (설치한 프로그램은)하드 디스크에 저장되며, 프로그램을 실행하는 것은 하드디스크에 저장된 프로그램 내용을 메모리로 올리는 것(Loading)을 의미합니다. 이와 같이 실행을 위해 메모리로 올라온 프로그램을 프로세스라고 합니다. 즉 하드 디스크 - 메모리 - CPU 과정을 통해 프로그램이 실행 됩니다. * 멀티 프로세스(Multi-process)란 동일한 프로그램을 여러 개 실행시키는 것을 의미합니다. 프로세스(Process)란 기본적으로는 현재 실행 중인 프로그램을 의미하며, 자바 프로그래밍 관점에서 자세히 설명하면 JVM(=Java Virtual Machine)을 실행하는 하나의 인스턴스로 볼 수 있습니다. 프로그램은 운..

JAVA 2023.10.16

[ Spring boot ] 서버 실행 시 애플리케이션 초기화 로직 실행 코드 구현

서버 실행 시 기본 로직 실행(init)하기 스프링 프레임워크에서 초기화를 위해 제공하는 인터페이스 initializingBean을 사용하였다. 예를 들어 서버에서 기본적으로 관리자 계정을 초기화 설정해두어야 할 필요가 있는 경우 등에 사용할 수 있다. 기본적으로는 아래와 같은 모습으로 사용한다. - 초기화 로직을 담고 있는 클래스는 InitializingBean을 구현한다. - afterPropertiesSet() 메서드를 오버라이드 하여 해당 메서드에 초기화 시킬 로직을 구현하여 준다. - initializingBean은 스프링에서 초기화를 위해 제공하는 인터페이스로, 스프링 컨텍스트에 의해 관리되기 때문에 초기화 하려는 로직을 구현한 클래스도 스프링 컨텍스트에 의해 관리될 수 있도록 @Compone..

JAVA/Spring Boot 2023.08.10

[ Spring Boot ] - 간단 스케줄링 작업하기

@EnableScheduling와 @Schedule를 활용한 스케쥴링 작업 서버 실행 하는 클래스에 @EnableScheduling을 아래와 같이 붙여 준다. 일정 시간대나 또는 일정 시간 마다 실시하려는 작업을 수행할 클래스를 아래와 같이 작성해준다. 해당 클래스에는 @Component를, 실질적으로 작업을 수행하는 메서드에는 @Scheduled(cron="[cron식]")을 붙여준다. 또는 fixedRate를 통해 일정 시간마다 작업이 수행되도록 할 수 있다. 아래의 경우 5초마다 반복하여 'fixed rate 5000------'를 출력한다. Q) @EnableScheduling는? 스프링 프레임워크에서 제공하는 어노테이션으로 @Scheduled가 붙은 메서드인 경우 스케쥴 작업을 활성화하여 준다...

JAVA/Spring Boot 2023.08.09

[ Kafka ] - 카프카란 무엇인가?

카프카 (Kafka)란 무엇인가 흔히 카프카로 불리우는 아파치 카프카는 대용량 실시간 데이터 스트리밍 플랫폼으로, 분산형 메시징 시스템입니다. 카프카는 글로벌 구인/구직 소셜 네트워크 서비스사인 Linkedin에서 기존의 레거시 프로그램 아키텍처가 가지는 앤드투앤드 연결 방식으로 인한 데이터 연동의 복잡성, 시스템 확장의 어려움 등을 극복하기 위해 개발한 오픈소스 소프트웨어입니다. * 링크드인의 기존 앤드투앤드 방식의 데이터 파이프라인 모습 * 이벤트 스트리밍 플랫폼인 카프카를 적용한 이후의 데이터 파이프라인 모습 위의 두 데이터 파이프 라인 모습을 비교해 보면 알 수 있듯이, 기존에 각각의 어플리케이션이 직접 연결되어 복잡한 구조를 띄었던 데이터 구조가, 중앙의 범용 파이프 라인(즉 카프카)을 중심으로..

Kafka 2023.08.04

[ React ] - jest 사용

간편한 테스트 코드 작성을 도와주는 도구이다. 우선은 npm이나 yarn을 이용하여 jest를 설치하여 준다. > npm i jest --save-dev // 타입스크립트로 하는 경우에는 타입도 추가해주어야 한다. > npm i --save-dev @types/jest 기본 코드를 작성하여 준다. 위의 코드를 테스트하기 위해 테스트 파일을 생성하는데, 기본 코드 파일명.test 로 생성한다. .test.로 된 파일은 모두 테스트 대상이 된다. 또는 _ _tests_ _ 로 폴더를 생성하고 하위에 파일을 생성하면, 해당 폴더 하위의 파일이 테스트 대상이 된다. 직접 설정한 파일만 테스트 하고 싶은 경우에는 test 실행을 위한 명령어 입력 시에 경로를 입력해주면 된다.

Javascript/React 2023.07.09

[ Typescript ] - reac-native type 설정

문제) .env 파일의 비밀키 값을 가져와 사용하고 싶은데 타입 에러가 발생 Cannot find module '@env' or its corresponding type declarations. 설정해주어야 할 것 1. types 폴더 생성 및 env.d.ts파일 생성 2. babel.config.json 파일 설정 3. tsconfig.json 파일 설정 1. types 폴더 생성 및 env.d.ts 파일 생성 root폴더 위치에 types 폴더를 생성하여 주고, 해당 폴더의 하위의 env.d.ts 파일을 생성하여 주었다. env.d.ts 파일은 아래와 같다. 위의 코드에 대해 설명하면, @env모듈의 타입을 설정해준 것이라 할 수 있다. .env파일에서 API_KEY를 가져오는데 .env파일의 API..

카테고리 없음 2023.07.02

[ 컴퓨터 구조와 운영 체제 ] - 혼자 공부하는 컴퓨터 구조 + 운영체제 (정보단위, 인코딩...)

0과 1의 세계 - 컴퓨터는 기본적으로 0과 1밖에 이해하지 못한다. 정보 단위 비트(bit) 0과 1을 표현하는, 최소 정보 단위이다. 즉 n비트로 2ⁿ가지의 정보 표현이 가능하다. 1비트(1bit) 1비트(1bit) 1바이트(1byte) 8비트(8bit) 1킬로바이트(1kB) 1,000바이트(1,000byte) 1메가바이트(1MB) 1,000킬로바이트(1,000kB) 1기가바이트(1GB) 1,000메가바이트(1,000MB) 1테라바이트(1TB) 1,000기가바이트(1,000GB) 워드(word) CPU가 한 번에 처리할 수 있는 정보의 크기 단위를 의미한다. 하프 워드 : 워드의 절반 크기 풀 워드 : 워드 크기 더블 워드 : 워드의 두 배 크기 이진법(binary) 0과 1로 수를 표현하는 방법으..

운영체제 2023.06.01

[ 컴퓨터 구조와 운영 체제 ] - 혼자 공부하는 컴퓨터 구조 + 운영체제(책)

Q) 컴퓨터 구조를 배워야 하는 이유? 컴퓨터 구조를 알면 성능, 용량, 비용을 고려한 개발이 가능해지고, 자신이 작성한 코드가 어떻게 작동하는지에 대한 심도 깊은 이해가 가능해진다. 컴퓨터 구조와 운영체제란 무엇인가? 컴퓨터 구조 컴퓨터는 명령어를 처리하는 기계라고 할 수 있으며, 컴퓨터가 이해할 수 있는 언어를 기계어라고 한다. 컴퓨터는 기본적으로 중앙처리장치(CPU: Central Processing Unit), 기억장치(Memory), 입력 장치, 출력 장치 4가지의 주요 부품으로 이루어져 있고, 이 4가지의 주요 부품은 메인 보드에 의해 연결된다. * 기계어 기계어는 컴퓨터가 이해할 수 있는 언어로, 0과 1로 이루어진 저급 프로그래밍 언어이다.(이때 저급이란 것은 컴퓨터에 가까운 언어일수록 저..

운영체제 2023.05.31

[ Java ] - SMS 전송하기 (feat. naver cloud platform)

SMS 전송하기 (feat. naver cloud platform) 1. naver cloud platform 회원 가입 및 로그인 https://www.ncloud.com/ 옆의 링크를 통해 naver cloud에 들어가서 회원가입 및 로그인을 한다. 기본적으로 네이버 아이디가 있는 경우 네이버 아이디를 통한 간편 가입이 가능하다. 2. accessKey, secretKey 발급받기 로그인 후 상단의 메뉴바에서 마이페이지 - 계정 관리 - 인증키 관리가 있는데, 인증키 관리를 클릭하여 준다. 비밀번호 확인 과정이 있는데, 비밀번호를 입력해주면 아래와 같이 Api 인증키 관련 페이지가 나오는데 여기서 신규 API 인증키 생성을 클릭하여 생성하여 준다. 기본적으로 생성된 AccessKeyId와 Secret..

JAVA/Spring Boot 2023.05.17