String Interning
·
Language/Java
String Interning 이란?String Interning은 문자열 객체의 메모리 사용을 최적화하고, 문자열 비교를 효율적으로 수행하기 위한 기법이다.간단히 말하자면, 각각 구별되는 String 값의 복사본 하나만 저장하는 기법이다String은 String Pool이라는 특별한 메모리 영역에 저장된다.동일한 문자열에 대해 하나의 인스턴스만 유지하여 메모리 사용을 줄인다.==연산을 사용하여 빠르게 비교할 수 있다.String Pool과 String Interning이전 포스팅에서 String에 대해 설명하며 String Pool에 대해 언급한 적이 있다. String Pool이 정확히 무엇인지, String Interning과 무슨 관계가 있는지 알아보자.String PoolJava에서 문자열 리터..
Compute Operation (2)- 서버이미지, 스토리지, 스냅샷, 공인 IP할당, NIC
·
Devops/Naver Cloud
모든 자료는 온라인으로 제공되는 Naver Cloud의 공인교육과정을 참고하였으며,Naver Cloud Professional 자격증을 준비하시는 분들께 조금이나마 도움이 될까하여 정리해두었던 내용을 공유합니다.2023년에 작성된 내용이며, VPC Platform 기반의 강의 내용을 정리한 것이니 참고 바랍니다.   서버 이미지 Operation내 서버 이미지 만들기서버의 모든 스토리지를 이미지로 생성추가 스토리지까지 이미지로 생성추가 스토리지의 용량이 클 경우→ 추가 블록 스토리지는 스냅샷으로 뜨기→ 이미지 생성에 오래 걸릴 수 있으므로 스토리지 해제 후 OS영역만 이미지로 생성서버가 [운영중]인 상태에서도 내 서버 이미지 생성 가능참고) Classic 플랫폼에서는 서버 상태를 [정지] 상태로 변경해야..
[프로그래머스/level 3] [카카오 인턴] 경주로 건설 - 67259
·
코딩 테스트 정복기/프로그래머스
[level 3] [카카오 인턴] 경주로 건설 - 67259문제 링크성능 요약메모리: 84.8 MB, 시간: 31.59 ms구분코딩테스트 연습 > 2020 카카오 인턴십채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 11월 26일 00:18:08문제 설명건설회사의 설계사인 죠르디는 고객사로부터 자동차 경주로 건설에 필요한 견적을 의뢰받았습니다.제공된 경주로 설계 도면에 따르면 경주로 부지는 N x N 크기의 정사각형 격자 형태이며 각 격자는 1 x 1 크기입니다.설계 도면에는 각 격자의 칸은 0 또는 1 로 채워져 있으며, 0은 칸이 비어 있음을 1은 해당 칸이 벽으로 채워져 있음을 나타냅니다.경주로의 출발점은 (0, 0) 칸(좌측 상단)이며, 도착점은 (N-1, N-1) 칸(..
String vs String Builder vs String Buffer
·
Language/Java
Java에서는 문자열을 다루기 위한 클래스로 String, StringBuilder, StringBuffer가 있다.각각 특성에 따라 상황에 맞게 선택하여 사용해야한다. String예시String str1 = "Hello";String str2 = "World";String str3 = str1 + " " + str2; // 새로운 문자열 객체가 생성됨 특징불변성String객체는 불변(imuutable) 특징을 갖고 있다. 즉, 한번 생성된 String객체의 값은 변경할 수 없다.만약 새로운 문자열을 만들려면 기존 문자열을 기반으로 새로운객체를 생성해야 한다.리터럴 풀문자열 리터럴은 JVM의 문자열 풀에 저장되어 메모리 효율성을 높인다.이는 동일한 값을 가지는 문자열 리터럴은 동일한 객체를 참조하게끔 한..
Stream API
·
Language/Java
Stream API 란?java 8에 도입된 기능으로, Collection(예: list, set, map 등)을 처리하는데 사용된다.데이터의 연속적인 흐름으로, 람다 표현식과 함께 사용하여 매우 간결하고 효율적으로 데이터를 처리할 수 있다. 주요 특징은 다음과 같다.선언적스트림 API는 데이터를 어떻게 처리할지에 대한 '방법'보다는 '무엇을 할 것인지'에 초점을 맞춘다.함수형 프로그래밍람다 표현식을 사용하여 더 간결하고 읽기 쉬운 코드를 작성할 수 있다.지연 연산스트림의 중간 연산은 지연(lazy) 연산으로, 최종 연산이 호출될 때까지 실제로 수행되지 않는다.최종연산이 호출될 때, 스트림 파이프라인 전체가 실행되며 데이터 처리가 수행된다.병렬 처리스트림은 쉽게 병렬 처리를 할 수 있는 메서드를 제공한다..
[백준/Gold V] 숨바꼭질 3 - 13549
·
코딩 테스트 정복기/백준
[Gold V] 숨바꼭질 3 - 13549문제 링크성능 요약메모리: 29348 KB, 시간: 324 ms분류0-1 너비 우선 탐색, 너비 우선 탐색, 데이크스트라, 그래프 이론, 그래프 탐색, 최단 경로제출 일자2024년 11월 22일 18:28:50문제 설명수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다.수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구..
[백준/Silver I] 스티커 - 9465
·
코딩 테스트 정복기/백준
[Silver I] 스티커 - 9465문제 링크성능 요약메모리: 147556 KB, 시간: 692 ms분류다이나믹 프로그래밍제출 일자2024년 11월 21일 23:00:48문제 설명상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 그림 (a)와 같이 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다.상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 왼쪽, 오른쪽, 위, 아래에 있는 스티커는 사용할 수 없게 된다.모든 스티커를 붙일 수 없게된 상냥이는 각 스티커에 점수를 매기고, 점수의 합이 최대가 되게 스티커를 떼어내려고 한다. 먼저, 그림 (b..
Java는 Call by Reference가 존재하지 않는다.
·
Language/Java
값에 의한 호출 (Call by Value)메서드 호출 시 전달된 인수의 값을 복사하여 메서드에 전달하는 방식이다.이 경우 원래 변수는 메서드 내부 변화에 영향을 받지 않는다. 예시)public class Main { public static void modifyValue(int x) { x = 10; } public static void main(String[] args) { int a = 5; modifyValue(a); System.out.println(a); // 출력: 5 }} modifyValue에서 10으로 값 변경하기를 시도했음에도, a는 여전히 5인것을 볼 수있다.이는 인수로 a가 전달될 때, 변수 x에..
저장 프로시저(Stored Procedure) - Oracle, MySQL 예시
·
Computer Science/Database
저장 프로시저란?저장 프로시저는 데이터베이스에서 반복적으로 수행되는 작업을 하나의 단위로 모아 저장해 놓은 일련의 SQL문들이다.특정 작업을 수행할 때마다 동일한 SQL문을 다시 작성할 필요 없이, 미리 정의된 절차를 호출함으로써 실행할 수 있다. SELECT, INSERT, UPDATE, DELETE 등의 DQL, DML을 포함할 수 있다.IF문, DECLARE, SET 등의 프로그래밍 문법을 사용할 수 있어 복잡한 로직 구현이 가능하다.CALL, EXEC 명령어를 통해 함수처럼 호출하여 실행할 수 있다.   저장 프로시저의 장단점장점 성능 향상저장 프로시저는 컴파일되고 캐싱되기 때문에 동일한 작업을 반복적으로 수행할 때 성능이 향상다.보안 강화데이터베이스 접근을 저장 프로시저를 통해 제어하면, 프로..