IT 222

HashSet

HashSet 은 Set 인터페이스에서 지원하는 구현 클래스이다. => Set의 특징을 그대로 상속받는다. ✏️ Set- Java에서 중복을 허용하지 않는 컬렉션을 나타내는 인터페이스 - Key의 중복을 허용하지 않는다- Key로 null을 허용하지 않는다. - 중복을 자동으로 제거해준다.- 비선형 구조로 순서 없이 Key로만 데이터를 저장한다. => 인덱스X- 요소의 저장 순서를 유지해야 한다면 JDK1.4부터 제공하는 LinkedHashSet 클래스를 사용하면 된다.- 성능이 빠르고 검색 속도가 우수하다- 추가나 삭제시 Set 내부에 있는지 검색한 뒤 해야하므로 List구조에 비해 속도가 느리다  주요 구현 클래스HashSet :  가장 많이 사용되는 Set 구현체 (빠른 검색 속도, 순서X) Tre..

IT/JAVA 2025.03.20

[프로그래머스 12914] [Java] 멀리뛰기

짝수 홀수일는 나누고, 이진법 관련해서 푸는 문제인 줄 알았는데동적 계획법을 이용하는 문제였다...생각도 못했다.... 이전에 풀었던 피보나치 수 문제와 같은 것이었다... 2025.03.11 - [IT/JAVA] - [프로그래머스 12945] [Java] 피보나치 수>> 동적 프로그래밍 이용 ✏️ DP (Dynamic Programming) 동적 계획법- 복잡한 문제를 더 작은 하위 문" data-og-host="iamsh.tistory.com" data-og-source-url="https://iamsh.tistory.com/401" data-og-url="https://iamsh.tistory.com/401" data-og-image="https://scrap.kakaocdn.net/dn/k0PHP..

HashMap

HashMap- 자바의 컬렉션 프레임워크 중 하나로, 키와 값의 쌍으로 데이터를 저장하는 자료구조- 해시 테이블을 기반으로 하며, 키를 해시 함수로 해시 코드로 변환하여 값을 저장하고 검색한다- 키와 값의 쌍을 저장하며, 키는 중복될 수 없고, 값은 중복될 수 있다- 동일한 키로 값을 저장하면 기존 값이 덮어쓰여진다- 빠른 검색: 평균적으로 O(1)의 시간 복잡도로 데이터를 검색할 수 있다- 키(Key)값을 통해서만 검색 가능  주요 메서드put(K key, V value)키와 값을 HashMap에 저장한다get(Object key)키에 해당하는 값을 반환한다. 키가 존재하지 않으면 null을 반환한다.remove(Object key)키에 해당하는 키-값 쌍을 제거한다containsKey(Object k..

[프로그래머스 138476] [Java] 귤 고르기

1. 같은 종류의 원소 갯수 구하기   =>  HashMap 이용2. 1번을 내림차순 정렬3. 갯수가 많은 것부터 k개 고르기✏️ Solution 1 import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;public class 귤고르기 { public static int solution(int k, int[] tangerine) { int sum = 0; // 고를 귤의 개수 int cnt = 0; // 최솟값 카운트 HashMap map = new HashMap(); for(int num : tangerine) { map.put(n..

Cafe24로 Java Spring Boot 프로젝트 배포하기

2025.03.16 - [IT/IT] - 웹 어플리케이션 : 웹 서버, WAS, 웹 컨테이너 웹 어플리케이션 : 웹 서버, WAS, 웹 컨테이너🖥️ 정적 페이지  Static Pages- 데이터베이스에서 정보를 가져오거나 등 별도의 서버에서의 처리가 없어도, 사용자들에게 보여줄 수 있는 페이지.- 어떠한 사용자가 오던간에 동일한 페이지iamsh.tistory.com Cafe24- 웹 호스팅 서비스를 제공하는 플랫폼으로, 웹사이트를 운영할 수 있도록 서버 공간을 대여해주는 서비스- 웹 호스팅 (Web Hosting) 제공  :  서버를 직접 구축하지 않고, 웹사이트를 운영할 수 있도록 지원- PHP, JSP, Java 기반 서비스 지원 - Tomcat(Web Container)을 기본적으로 제공  :  ..

IT/Project 2025.03.17

웹 어플리케이션 : 웹 서버, WAS, 웹 컨테이너

🖥️ 정적 페이지  Static Pages- 데이터베이스에서 정보를 가져오거나 등 별도의 서버에서의 처리가 없어도, 사용자들에게 보여줄 수 있는 페이지.- 어떠한 사용자가 오던간에 동일한 페이지를 보여준다.ex) image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들 🖥️ 동적 페이지  Dynamic Pages- 서버의 데이터베이스에서 정보를 가져와서 처리하는 것처럼, 어떠한 요청에 의하여 서버가 일을 수행하고 해당 결과가 포함된 파일을 보여주는 페이지.- 사용자들마다 다른 페이지가 보여질 수 있다.​🖥️ 웹 서버 Web Server- 클라이언트가 요청한 정적인 콘텐츠를 HTTP 프로토콜을 통해 제공해주는 서버- 정적페이지를 보내주고, 정적 콘텐츠 (HTML,..

IT/IT 2025.03.16

[프로그래머스 12945] [Java] 피보나치 수

public class 피보나치수 { public static int solution(int n) { int[] f = new int[n+1]; f[0] = 0; f[1] = 1; for (int i=2; i >>> 동적 프로그래밍 이용 ✏️ DP (Dynamic Programming) 동적 계획법- 복잡한 문제를 더 작은 하위 문제로 나누어 해결하는 알고리즘 설계 기법- 하위 문제의 결과를 저장하여 중복 계산을 피하고, 전체 문제를 효율적으로 해결한다.  DP와 재귀적 호출의 차이점 하향식(Top-down) 접근, 상향식(Bottom-up) 접근- 재귀적 호출은 주로 하향식 접근 방식을 사용한다.- 큰 문제를 작은 하위 문제로 나누어 해결하는 방식..

Pattern, Matcher Class

Java에는 정규식을 활용해 문자열을 검증, 탐색을 돕는 Pattern, Matcher 클래스가 있다Java API  java.util.regex 패키지에 포함되어 있다.  Pattern 클래스  (java.util.regex.Pattern)- 정규 표현식을 정의하는 클래스- 정규 표현식을 컴파일하여 Pattern 객체를 생성한다 📝 matches() 메서드  :  검증 후 대상문자열이 정규표현식과 일치하면 true, 그렇지 않다면 false값을 리턴import java.util.regex.Pattern;public class RegexExample { public static void main(String[] args) { String pattern = "^[0-9]*$"..

IT/JAVA 2025.02.25

npm과 yarn

- npm(Node Package Manager)와 Yarn은 모두 JavaScript 환경에서 패키지 관리를 위한 도구이다.- 프로젝트에서 필요한 라이브러리와 모듈의 설치, 업데이트, 삭제, 의존성 관리를 효율적으로 수행할 수 있도록 도와준다.- 최근에는 npm도 지속적인 업데이트를 통해 성능과 보안이 향상되어 두 관리자 간의 차이가 줄었다. npm- Node.js와 함께 기본적으로 제공되는 패키지 관리자이다.- 다양한 패키지를 npm 레지스트리를 통해 설치하고 관리할 수 있다.Yarn- 2016년 Facebook에서 npm의 성능과 보안 문제를 개선하기 위해 개발한 패키지 관리자이다.- npm과 동일한 기능을 제공하면서도 속도와 안정성 측면에서 향상된 성능을 보인다. npmyarn개발사Node.js ..

IT/IT 2025.02.12

vite

⚡ CRA  vs  Next.js  vs  Vite CRA- 오랫동안 React 프로젝트를 만들기 위해서 Create React App라는 CLI 도구가 사용되었다.- 오랫동안 React 생태계에서 프로젝트를 생성하는 표준처럼 여겨졌다.- 하지만 CRA는 2022년 4월 이후로 업데이트가 전혀 없으며, React 공식 문서에서도 사라지면서 사실 상 폐기(deprecated) 수순을 밟고 있다. Next.js- React 프로젝트를 만들기 위해서 많이 사용되는데, Next.js는 프로젝트 생성 뿐만 아니라 라우팅, 데이터 패칭(fetching), Server-Side Rendering(SSR), Static Site Generation(SSG), 이미지 최적화 등 온갖 부가 기능을 지원하는 메타 프레임워크..

IT/React 2025.02.12

Sass

- Sass는 CSS의 전처리기(Preprocessor)로, 변수, 중첩(Nesting), 믹스인(Mixin) 등 다양한 기능을 제공하여 코드의 재사용성과 가독성을 높여준다.- CSS를 좀 더 프로그래밍 언어스럽게 작성 가능하다.- 브라우저는 SASS문법을 모르기 때문에 CSS로 컴파일해야 한다. ( ➡️ sass라이브러리 설치 )- React 애플리케이션에서 Sass를 사용하면 스타일링 작업을 더욱 효율적으로 수행할 수 있다.- Sass를 사용하기 위해서는 sass 패키지가 필요하며, 프로젝트에 추가적인 의존성을 가져온다.- Sass를 활용하면 React 애플리케이션의 스타일링을 더욱 효율적으로 관리할 수 있으며, 코드의 유지보수성과 가독성을 높일 수 있다.  |  Sass 패키지 설치프로젝트 디렉토리..

IT/React 2025.02.11

[필기] 은행가 알고리즘

은행가 알고리즘(Banker's Algorithm)은 교착상태의 해결 방법 중 어떤 기법에 해당하는가? 1) Avoidance 2) Detection 3) Prevention 4) Recovery 은행가 알고리즘 (Banker's Algorithm)- 교착 상태(데드락)를 회피하기 위한 기법으로, 프로세스에 자원을 할당하기 전에 시스템이 안전한 상태에 있는지를 검사하여 교착 상태를 방지한다.- 은행이 고객에게 대출을 해줄 때 파산을 피하기 위해 신중하게 자금을 관리하는 방식과 유사하여 은행가 알고리즘이라는 이름이 붙었다 작동원리- 자원 요청 :  프로세스가 자원을 요청하면, 시스템은 해당 요청이 안전한지 판단한다- 안전성 검사 :  요청을 수락했을 때 시스템이 여전히 안전 상태를 유지할 수 있는지 시뮬레..

[필기] UDP

UDP 프로토콜에 대한 설명으로 옳지 않은 것은? 1) 흐름 제어가 필요 없는 비신뢰적 통신에 사용한다. 2) 순차적인 데이터 전송을 통해 전송을 보장한다. 3) 비연결지향으로 송신자와 수신자 사이에 연결 설정 없이 데이터 전송이 가능하다. 4) 전송되는 데이터 중 일부가 손실되는 경우 손실 데이터에 대한 재전송을 요구하지 않는다. UDP(User Datagram Protocol)- 인터넷 프로토콜 스위트의 핵심 통신 프로토콜 중 하나로, IP 네트워크에서 메시지를 전송하는 데 사용된다- UDP는 비연결형 프로토콜로, 데이터 전송 전에 송신자와 수신자 간의 연결 설정을 요구하지 않는다.- 이로 인해 통신 속도가 빠르지만, 데이터 전송의 신뢰성은 보장되지 않는다. UDP의 주요 특징비연결형 프로토콜(Con..

[필기] HDLC 프레임

HDLC 프레임 형식 중 프레임의 종류를 식별하기 위해 사용되는 것은? 1) 정보 영역 2) 제어 영역 3) 주소 영역 4) 플래그데이터 링크 제어 프로토콜 중 HDLC가 가장 많이 사용된다.- 특징- 프레임 구조- 데이터 전송모드  - 비트 위주 프로토콜- 각 프레임 단위로 데이터흐름 제어, 오류를 검출하는 비트열을 삽입하여 전송- Point-to-Point 및 Multi-Point, Loop 등 다양한 데이터 링크 형태에 동일하게 적용할 수 있다- 단방향, 반이중, 전이중 통신을 모두 지원한다- 동기식 전송 방식을 사용한다- 오류 제어를 위해 Go-Back-N과 선택적 재전송 ARQ (Selective Repeat ARQ 사용)- 흐름제어를 위해 슬라이딩 윈도우방식 사용한다- 투명성 보장을 위해 비트..

[필기] RAID 구성방식

Q)  Windows에서 구성 가능한 디스크 어레이 구축 방식 중 데이터 손실의 위험을 감수하더라도 고성능을 추구하기 위해 디스크를 병렬로 배치하는 방식은? 1) RAID 0 2) RAID 1 3) RAID 4 4) RAID 5 RAID는 여러 개의 하드 디스크를 조합하여 데이터의 성능 향상과 안정성을 추구하는 기술이다각 RAID 레벨은 데이터 분산 방식과 목적에 따라 다르다 RAID 0 (스트라이핑 striping)- 최소 2개의 디스크를 사용하여 데이터를 블록 단위로 나누어 각 디스크에 분산 저장한다- 데이터를 병렬로 읽고 쓰기 때문에 디스크 I/O 성능이 향상된다- 데이터 중복 저장이 없으므로, 디스크 중 하나라도 고장나면 전체 데이터가 손실될 위험이 있다.  RAID 1 (미러링, Mirrorin..

[필기] 옵티마이저

Q)  사용자가 질의한 SQL 문에 대한 최적화 작업을 수행하는 옵티마이저에 대한 설명으로 가장 적절하지 않은 것은? 1) 규칙 기반 옵티마이저는 일반적으로 인덱스를 이용한 액세스를 우선시한다. 2) 비용 기반 옵티마이저는 정확한 통계 정보가 없더라도 비용 예측이 가능하여 효율적인 실행계획을 세울 수 있다. 3) 실행계획을 구성하는 요소에는 조인 순서, 조인 기법, 액세스 기법, 최적화 정보 등이 있다. 4) 테이블 내의 많은 수의 행을 읽어야 하는 경우라면 전체 테이블 스캔 방식이 인덱스 스캔 방식보다 더 나은 결과가 나올 수 있다. 옵티마이저(Optimizer)- 옵티마이저는 가장 효율적인 방법으로 SQL을 수행할 최적의 처리 경로를 생성해주는 DBMS의 핵심 엔진이다- 컴퓨터의 두뇌가 CPU인 것처..

반응형