CS
-
Java) 컴파일, 인터프리터 그리고 자바CS 2024. 11. 10. 23:37
개요우리가 흔히 사용하는 프로그래밍 언어로 작성된 코드는 컴퓨터에게 어떤 의미로 다가갈까요? 우리가 작성한 코드, 즉 고급 언어는 인간에게는 이해하기 쉬운 형태지만, 컴퓨터는 이를 바로 실행할 수 없습니다. 그렇다면 이 코드가 컴퓨터가 이해할 수 있는 언어로 변환되는 과정에는 어떤 방법이 있을까요? 바로 컴파일과 인터프리터라는 두 가지 주요 방식이 존재합니다. 이번 글에서는 컴파일과 인터프리터가 무엇인지, 그리고 각 방식의 특징과 차이점을 알아보겠습니다. 컴파일컴파일은 고급 언어로 작성된 프로그램 코드를 컴파일러를 사용하여 한 번에 기계어(또는 중간 형태의 바이트코드)로 번역하는 방식입니다. 컴파일러는 소스 코드를 분석하여 최적화하고, 전체 코드를 한 번에 변환해 실행 가능한 파일(executable f..
-
Java) StringBuilder 와 StringBufferCS 2024. 8. 7. 22:30
앞서 String 에 대해 깊게 공부를 했으니 이제 StringBuilder 와 StringBuffer 에 대해 깊게 배워보려고한다.https://will-of-rough.tistory.com/55 개요 StringBuilder는 가변 길이의 문자열을 생성하고 조작하는 데 사용되는 클래스StringBuilder 는 문자열을 생성하고 조작하는데 특화된 클래스다.사실 StringBuilder 는 실제 업무에서만 사용안할 뿐이지 내부에서는 굉장히 많이 사용한다.당장 String 의 내부 메소드만 보더라도 문자열 교체는 전부 StringBuilder 를 사용하고있다. 그러면 이 StringBuilder 란 도대체 무엇일까? StringBuilder 클래스public final class StringBui..
-
Java) String 부수기CS 2024. 8. 6. 23:11
개요String 은 수정이 가능한가요?어떻게 불변을 만드는걸까요?왜 불변을 만드는걸까요? 기존에 String 은 단순히 문자열 관련된것을 쓸때만 사용했는데, 항상 느끼는거지만 String 에 관한 질문은 무조건 나온다.그것도 계속된 질문으로 A를 알아? 그럼 B는 알까? 그러면 C는 알까? 하는 수준으로 진짜 어디까지 알아야 하나 싶을정도로 파도파도 계속 더 알아야한다. 그렇기에 이번 글을 통해 진짜 심해 깊은곳까지 탐험할 예정이다. 계속된 수정과 끝이없는 업데이트를 통해... String 이란? String 클래스는 문자열을 나타내는 데 사용되는 불변(immutable) 객체 이 한마디에 굉장히 많은 말이 함축되어있다, String 은 클래스이고, 문자"열"이며, "불변" "객체"이다.우선 Stri..
-
Java) 정규표현식CS 2024. 8. 5. 01:44
정규표현식이란?정규표현식(Regular Expression)은 문자열에서 특정한 패턴을 찾거나 일치시키기 위해 사용되는 특수한 텍스트 스트링 Java에서 정규표현식을 사용하면 복잡한 문자열 검색, 매칭 및 변환 작업을 효율적으로 수행 정규표현식은 특별한 기능이 들어가는건 아니고 쉽게 얘기하면 문자열에서 패턴찾기입니다.다만 이 문법이 좋은건 if 문 혹은 switch 문같은 조건문을 사용하지 않더라도 쉽게 찾는 문자열의 조건을 만드는 코드를 만들 수 있기 때문입니다. 정규표현식의 원리정규표현식 엔진이 문자열을 매칭하는 원리는 크게 두 가지 방식으로 나뉩니다: NFA(Nondeterministic Finite Automaton, 비결정적 유한 오토마타) 방식과 DFA(Deterministic Finite A..
-
Java) 가비지 컬렉션CS 2024. 8. 4. 20:38
개요가비지 컬렉션이란?자바의 가비지 컬렉션(Garbage Collection, GC)은 자바 프로그램이 동적으로 할당한 메모리를 자동으로 관리하는 메커니즘가비지 컬렉션의 주요 목적은 사용되지 않는 객체를 찾아서 메모리를 해제하는 것힙메모리에서 활동Stop The World GC를 수행하기 위해 JVM이 프로그램 실행을 멈추는 현상을 의미GC가 작동하는 동안 GC 관련 Thread를 제외한 모든 Thread는 멈추게 되어 서비스 이용에 차질이 생길 수 있다.따라서 이 시간을 최소화 시키는 것이 쟁점 가비지 컬렉션의 종류크게 알아야할것은 4가지1. Serial GC특징: 단일 스레드를 사용하여 GC 작업을 수행장점: 구현이 간단하고, 작은 애플리케이션이나 단일 스레드 환경에 적합단점: 멀티코어 시스템에서 비..