전체 글32 티스토리 단축키 단축키 확인: Ctrl + /많이 쓰는 단축키1. 제목 토글: Ctrl + Alt + 1 2. 본문 토글: Ctrl + Alt + 2 3. 글머리 기호 토글: Ctrl + Alt + 4 4. 글자색, 배경색: Ctrl + Alt + [ 또는 ]- 글자색이에요, 배경색이에요 5. 코드 블럭: Ctrl + Alt + ,public class CallableMainV1 { public static void main(String[] args) throws ExecutionException, InterruptedException { ExecutorService es = Executors.newFixedThreadPool(2); Future future = es.submit(new MyCallable()); .. 2024. 10. 5. [BoxFit] 이미지 크기 조절 fit 옵션 BoxFit은 Flutter에서 이미지를 박스(컨테이너) 안에 배치할 때 이미지의 크기와 위치를 어떻게 조절할지 결정하는 데 사용 Container( width: double.infinity, height: 300, color: Colors.amber, child: Image( image: const AssetImage('asset/image/onb.jpg'), fit: BoxFit.contain, ),)BoxFit.fill이미지를 박스의 크기에 맞게 강제로 늘리거나 축소이미지 비율이 유지되지 않음 BoxFit.contain이미지의 비율을 유지하면서 박스 안에 완전히 맞춤박스와 이미지의 비율이 다르면 여백이 생김 BoxFit.cover이미지를 박스의 크기에 맞추되 박스를 완전히.. 2024. 10. 5. 자바 메모리 구조 (스택, 힙, 메서드 ...) Java의 가비지 컬렉션(GC) 메커니즘은 자동으로 메모리를 관리하긴 하지만, 그 과정에서 발생할 수 있는 성능 저하를 최소화하고 고급 기능을 최적화 하기 위해서는 메모리 구조에 대한 지식이 필요하다.1. 메모리 누수나 다른 메모리 관련 문제들은 애플리케이션의 안정성과 성능에 큰 영향을 미칠 수 있다. 2. 메모리 구조에 대한 이해는 이러한 문제들을 효과적으로 진단하고 해결하는 데 도움을 준다. 3. 예를 들어, 특정 객체가 왜 가비지 컬렉션의 대상이 되지 않는지, 혹은 왜 특정 시점에 메모리 사용량이 급증하는지 분석할 수 있다. 4. 고급 Java 기능들, 예를 들어 멀티스레딩, 동시성 컨트롤 등을 사용할 때, 각 기능이 메모리에 어떤 영향을 미치는지 이해하는 것이 중요하다. JVM 메모리 구조 5가지.. 2024. 5. 5. Suspense를 활용한 SSR Architecture의 성능 개선 react 18의 주요 기능 중 하나인 Suspense가 Server Side Rendering 성능 개선을 위해 어떤 역할을 하게 될지 알아보자 SSR 개요1. 서버 사이드 렌더링(SSR)은 서버에서 React 컴포넌트를 사용해 HTML을 생성하고, 이 HTML을 사용자에게 전송하는 것을 말한다. 2. SSR은 사용자가 JavaScript bundle이 로드되고 실행되기 전에 페이지의 내용을 볼 수 있게 해준다. React에서 SSR의 과정1. 서버에서 전체 app에 대한 데이터를 fetch한다. 2. 그 다음에 서버에서 전체 app을 HTML로 렌더링하여 응답으로 보낸다. 3. 클라이언트에서 전체 app에 대한 Javascript 코드를 로드한다. 4. 클라이언트에서 JavaScript 로직을 서.. 2024. 5. 1. 페이지네이션 offset 과 cursor 차이 ( prisma ) 데이터베이스에서 전체가 아닌 특정 범위의 레코드만 조회할 경우가 있다.주로 offset 또는 cursor를 사용한다. offset 기반 페이지네이션1. offset 만큼 레코드를 건너뛰고 limit 만큼 레코드를 가져온다. 2. 이를 orm인 prisma에서는 skip, take로 표현한다.const results = await prisma.post.findMany({ skip: 3, take: 4,}) 3. 한 페이지당 보여주어야 할 게시물이 10개이고 3번 페이지로 이동한다면 20개를 스킵하고 그 다음부터 10개의 레코드를 조회해서 보여주면 된다.const results = await prisma.post.findMany({ skip: 10 * ( 3 - 1 ), take: 10,}) 장점.. 2024. 4. 30. 생성자 객체를 생성하는 시점에 필드 초기화 등 어떤 작업을 하고 싶다면 생성자를 사용한다. 기본 생성자 1. 매개변수가 없는 생성자를 기본생성자라고 한다. 2. 클래스에 생성자가 하나도 없으면 자바 컴파일러는 기본 생성자를 자동으로 만들어 준다. 3. 생성자가 하나라도 있으면 기본 생성자를 만들지 않는다. public class Animal { String name; int age; } Animal animal = new Animal(); 생성자를 정의하지 않았지만 자동으로 만들어주어 사용 가능하다 생성자로 필드 초기화 public class Animal { String name; int age; public Animal(String name, int age) { this.name = name; this.age.. 2024. 4. 13. 자바 클래스, 객체, 인스턴스 클래스 ( Class )1. 객체를 생성하기 위한 템플릿 또는 설계도이다. 2. 특정 유형의 객체들이 공통적으로 가지게 될 속성과 메서드를 정의한다. 3. 즉 데이터와 데이터를 조작하는 방법을 함께 묶는 수단을 제공한다. public class Animal { String name; int age; void introduce() { System.out.println("Animal{" + "name='" + this.name + '\'' + ", age=" + this.age + '}'); }} - Animal 클래스는 이름, 나이 속성을 가진다. - 자바에서는 이를 멤버 변수 또는 필드라 한.. 2024. 3. 31. 실행 컨텍스트와 호출 스택에 대한 이해 Javascript 코드를 어떻게 실행하는가? 클로저와 스코프는 무엇인가? 이러한 근본적인 개념을 이해하기 위해서 실행 컨텍스트(Execution Context)와 호출 스택(Call Stack)을 이해하는 것이 중요하다. 자바스크립트 엔진 1. 자바스크립트 코드를 실행할 수 있는 곳은 브라우저(Browser), Nodejs 이다. 2. 브라우저와 Nodejs는 자바스크립트 엔진을 사용해서 코드를 분석하고 실행한다. 3. 여러 엔진이 있지만 대표적으로 C/C++로 작성된 Google의 V8이 있다. 4. 각 브라우저마다 실행되는 엔진이 다를 수 있기 때문에 특정 기능이 브라우저에서 지원되지 않는지 이해할 수 있다. 5. 예를 들면 ES6기능을 사용하고 싶을 때 IE는 안되고 Chrome은 되는 이유가 여.. 2024. 3. 24. nullish 병합 연산자 ?? 에 대하여 nullsih 병합 연산자( ?? ) 는 논리 연산자로 왼쪽 피연산자가 null 이거나 undefined일 경우 오른쪽 피연산자를 반환하고 그렇지 않을 경우 왼쪽 피연산자를 반환한다. null ?? 'hello' // 'hello' undefined ?? 'hello' // 'hello' 'hi' ?? 'hello' // 'hi' OR 연산자 '||' 와의 차이점 1. OR( || ) 는 왼쪽 피연산자가 false로 평가되는 경우 오른쪽 피연산자를 반환한다. 2. false로 평가되는 값으로 null, undefined, 빈문자열 '', 0 등이 있다. '' ?? 'hello' // '' '' || 'hello' // 'hello' 0 ?? 100 // 0 0 || 100 // 100 다음 예시를 보자 .. 2024. 3. 24. 이전 1 2 3 4 다음