일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Dockerfile
- 프로세스
- linux 배포판
- 프로젝트 구조
- webpack
- Compound Component
- task queue
- TypeScript
- prettier-plugin-tailwindcss
- 좋은 PR
- 타입 단언
- JavaScript
- 암묵적 타입 변환
- Pull Request
- next.js
- Microtask Queue
- react
- 명시적 타입 변환
- prettier
- Custom Hook
- Sparkplug
- Render Queue
- CS
- VirtualDom
- type assertion
- Event Loop
- 주니어개발자
- docker
- Headless 컴포넌트
- AJIT
- Today
- Total
목록Java (19)
너굴 개발 일지
백준 사이트에서 알고리즘 문제를 풀다가 처음으로 StringBuilder를 접하였습니다. String 대신으로 사용하는 것 같고 append() 메소드 호출로 원하는 문자열을 추가할 수 있는 것 같은데... 성능면에서 더 좋은 것 같아서 String 대신 쓰는 것 같으니 사용하는 이유를 자세히 알지 못하여 알아보았습니다. String은 불변(immutable) 객체로 값을 변경할 수가 없으며 만약 String a, String b라는 2개의 객체를 더할 경우 (+)를 이용한 값 변경은 기존에 String에 들어있던 값을 버리고 새로운 값을 할당하기에 해당 연산이 많아진다면 성능이 떨어지게 됩니다. 그래서 사용하는 것이 StringBuilder 인데 변하는 녀석으로 (mutable) 문자열을 더할 때 새로..
EOF란 컴퓨팅에서 파일의 끝(End of FIle)을 나타내며 데이터 소스로부터 더이상 읽을 수 있는 데이터가 없음을 나타냅니다. 자바에서는 대표적인 입력 클래스로 Scannner, BufferedReader가 있는데 각각의 EOF 처리 방법은 다음과 같습니다. [Scanner] Scanner sc = new Scanner(System.in); while(sc.hasNextLine()) { sc.nextLine(); } while(sc.hasNextInt()) { sc.nextInt(); } [BufferedReader] BufferedReader br = new BufferedReader(new InputStreamReader(System.in); String input = ""; while((inp..
Java에서는 Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있습니다. BufferedReader, BufferedWriter는 버퍼를 이용해 입출력 효율을 높일 수 있도록 해주는 역할을 합니다. 버퍼를 이용하면 입출력의 효율이 비교할 수 없을 정도로 좋아지기 때문에 사용하는 것이 좋습니다. BufferedReader의 readLine()을 사용하면 데이터를 라인단위로 읽을 수 있고 BufferedWriter는 newLine()이라는 줄바꿈을 해주는 메소드가 있습니다. [BufferedReader 사용법] BufferedReader bf = new BufferedReader(new InputStreamReader(System.i..
동기(synchronous : 동시에 일어나는) 말 그대로 동시에 일어난다는 뜻으로 요청과 그 결과가 동시에 일어난다는 약속입니다. 요청을 하면 시간이 얼마나 걸리던 요청한 자리에서 결과가 주어져야 합니다. 예를 들면 송금 서비스 같은 작업은 동기 방식으로 처리해야 금액이 바로 반영되기에 혼란이 일어나지 않습니다. 비동기(Asynchronous : 동시에 일어나지 않는) 비동기는 동시에 일어나지 않는다를 의미합니다. 요청과 결과가 동시에 일어나지 않을거라는 약속입니다. 예를 들어 서버에서 데이터를 가져와서 화면에 표시하는 태스크를 수행할 때, 서버에 데이터를 요청한 이후 서버로부터 데이터가 응답될 때까지 대기하지 않고(Non-Blocking) 즉시 다음 태스크를 수행합니다. 이후 서버로부터 데이터가 응답..
Factory Method Pattern 객체지향 디자인 패턴으로 일반적으로 객체를 만들어내는 부분을 서브 클래스에 위임하는 패턴으로 볼 수 있다. 즉, new 키워드를 호출하는 부분을 서브 클래스에 위임하는 것이다. 결국 팩토리 메소드 패턴은 객체를 만들어내는 공장(Factory 객체)을 만드는 패턴으로 이해하면 된다. Factory Method Pattern 사용하는 이유 ? 클래스간의 결합도를 낮추기 위함으로 팩토리 메소드 패턴을 사용하는 경우 직접 객체를 생성하는 것이 아닌 서브 클래스에 위임함으로써 보다 효율적인 코드 제어와 의존성을 제거한다. 결과적으로 결합도 또한 낮출 수 있다. (결합도 : 클래스의 변경점이 생겼을 때 얼마나 다른 클래스에도 영향을 주는지를 의미) 장점 - 생성할 클래스를 ..
SingleTone 패턴이란 ? 전역 변수를 사용하지 않고 객체를 하나만 생성하여(static), 생성 객체를 어디서든지 참조할 수 있도록 하는 패턴 클래스가 오직 하나의 인스턴스만을 유지하도록 하는 패턴으로 한번 만들어지면 getInstance()와 같은 함수 또는 메소드 호출을 통해 객체에 접근 SingleTone 패턴 설계시 주의사항 1. private 생성자 2. statcic 변수로 객체 생성 3. 객체의 getter 구현 정적 변수가 아닌 SingleTone 패턴을 사용하는 이유 ? interface의 사용이나 lazy loading등 싱글톤으로 할 수 있는 것이 많기에 사용 싱글톤 패턴 예시 우리가 핸드폰을 사용할 때 다크모드로 설정해두면 어떤 페이지로 이동해도 다크모드 세팅은 유지된다. 이..
클라이언트 컴퓨터간의 관계에서 역할을 구분짓는 개념으로, 클라이언트는 서비스를 사용하는 컴퓨터이다 서버 클라이언트에게 서비스를 제공하는 컴퓨터의 개념이다 IP주소 컴퓨터(host)를 구별하는데 사용되는 고유한 값으로, 인터넷에 연결된 모든 컴퓨터는 IP주소를 갖는다 IP주소는 4byte의 정수로 구성되어 있다 ( ex : 192.168.1.100 ) 프로토콜 자원에 접근하기 위해 서버와 통신하는데 사용되는 통신규약(http) InetAddress Class 자바에서 IP주소를 다루기 위한 클래스로 메서드는 다음과 같다 메서드 설명 static InetAddress[] getAllByName(String host) 도메인명(host)에 지정된 모든 호스트의 IP주소를 배열에 담아 반환한다 String ge..
Process (프로세스) 간단히 말해서 '실행중인 프로그램'으로 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 프로세스 = 프로그램 수행하는데 필요한 데이터와 메모리 등의 자원 + 스레드 Thread (스레드) 실제로 작업을 수행하는 것을 의미하며 모든 프로세스에는 최소 1 스레드가 존재한다. 이걸 '싱글 스레드'라고 부르며 둘 이상의 스레드를 가진 프로세스는 '멀티스레드 프로세스'라고 한다. 예시를 들어 햄버거와 김밥을 만드는 주방에 비유한다면 ①햄버거 만드는 파트 ②김밥 만드는 파트 총 두개의 프로세스가 진행이 되며 햄버거 파트에서는 ⅰ)패티 굽는 과정 ⅱ) 햄버거 야채 다듬는 과정들이 있으며 햄버거 프로세스의 스레드라고 보면 되겠다. 스레드를 사용하는 이유..