분류 전체보기

    [React] i18next

    i18n은 internationalization 의 약자로 i와 n사이에 18글자가 들어있기 때문에 i18n이라고 한다. i18n은 어플리케이션을 다양한 언어에 쉽게 적용할 수 있도록 하는 개발 프로세스이다. 각 특정 로케일에 대해 다시 개발을 할 필요 없이 전 세계 사용자가 동일한 어플리케이션을 사용할 수 있도록 한다. 예를 들면 홈페이지의 영문버전, 한글버전이 그 예이다. React에서는 이를 지원해주는 i18next라는 라이브러리가 있다. 1. i18n 세팅 src폴더에 아래와 같은 폴더들을 만들어준다. // i18n/index.js import i18n from "i18next"; import { initReactI18next } from "react-i18next"; import en from ..

    [정리] PWA란 무엇인가? ( + serviceWorker)

    1. PWA란? PWA란 Progressive Web Application의 약자로 웹 기술의 유연성과 접근성을 활용하면서 모바일 앱과 유사한 사용자 경험을 제공하는 웹 어플리케이션 유형이다. PWA는 최신 웹 브라우저가 있는 모든 장치에서 작동하도록 설계되어 플랫폼 간 호환성을 제공하고 플랫폼별 개발의 필요성을 줄인다. 2. PWA의 특징 (1) 반응형 디자인 PWA는 기본적으로 반응형 디자인을 염두하여 개발해야 한다. 반응형 디자인은 다양한 화면 크기와 방향에 맞게 레이아웃과 콘텐츠를 자동으로 조정한다. 이를 통해 스마트폰, 태블릿 및 데스크탑과 같은 다양한 장치에서 일관된 사용자 경험을 보장한다. (2) 연결 독립성 PWA는 기본 브라우저 스레드와 별도로 백그라운드에서 실행되는 서비스워커를 사용한다..

    [JAVA] 입력 받은 숫자가 소수인지 판단하는 문제 뜯어보기

    입력받은 숫자가 소수인지 아닌지 판별하는 문제를 통해 배운게 꽤 많아서 정리하려고 한다. 첫 번째 내가 푼 풀이이다. import java.util.Scanner; public class FindPrimeNumberRunner { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Input any number!"); boolean isPrime = true; int number = input.nextInt(); for (int i = 2; i < Math.sqrt(number); i++) { if (number % i == 0) { isPrime = false; } } Sys..

    [JAVA] java 기본개념 (+ jshell)

    1. 자바란? 자바란 흔히 객체 지향 프로그래밍(OOP) 언어라고 한다. 이는 OOP의 기본 구성 요소인 객체, 클래스 및 상속의 개념을 기반으로 하는 것이다. (1) 자바의 객체 method 및 static 값들을 공유하는 클래스의 인스턴스이다. 다시 말해, 클래스라는 템플릿으로 만든 값이다. (2) 자바의 클래스 인스턴스를 만들기 위한 템플릿이다. 클래스에서는 method나 로직을 구성하여 인스턴스들의 작동 방식을 정의할 수 있다. (3) 자바의 상속 하위 클래스에서 상위 클래스를 상속하여 코드의 중복을 줄일 수 있고 새로운 클래스를 만들 수 있다. 템플릿을 변형시켜 새로운 템플릿을 만드는 것이다. OOP에서 중요한 점은 또 있다. (1) 캡슐화 내부의 정보를 숨기면서 외부의 호출이 있을 때 정해진 ..

    [정리] MSA란 무엇일까? (Node.js 예시)

    MSA란? MSA는 "Micro Services Architecture"의 약자로 애플리케이션을 작고 독립적인 서비스 단위로 분할하고, 이러한 서비스들을 조합하여 하나의 애플리케이션을 구축하는 아키텍처 스타일이다. MSA 활용 MSA는 대규모 애플리케이션 개발에 적합하다. 예를 들면, 인터넷 서비스, 전자상거래, 은행, 보험 등과 같은 대규모 시스템에서 많이 사용된다. MSA는 각각의 서비스를 독립적으로 배포하고 확잘할 수 있도록 한다. 따라서 서비스 간의 의존성을 최소화하고, 각각의 서비스를 독립적으로 개발하고 배포할 수 있다. MSA 예시 코드 (Node.js) [server1.js] const express = require('express'); const app = express(); app.ge..

    [JS] 자바스크립트의 메모리 관리 (가비지 컬렉터)

    JS의 레퍼런스 js는 다른 언어와 다르게 포인터의 개념이 없다. 그렇기 때문에 포인터라는 개념 대신 참조(reference)를 이용한다. *GO언어는 포인터도 있고 가비지컬렉터가 있다. 포인터가 없다고 해서 가비지컬렉터가 있는건 아니다. 자바스크립트에서 변수에 값을 할당할 때, 실제 값이 저장되는 것이 아니라 값이 저장된 메모리 주소를 참조하는 방식으로 동작한다. 따라서 변수를 이용하여 값을 변경하면 해당 메모리 주소에 있는 값을 변경하게 된다. 예를 들어 아래 코드에서 'obj1'과 'obj2'는 같은 객체를 참조한다. 따라서 'obj1'의 프로퍼티를 변경하면 'obj2'에서도 변경된 값을 확인할 수 있다. var obj1 = { name: "John" }; var obj2 = obj1; obj1.n..