본문 바로가기
반응형

전체 글66

[CS] Thread Safe란 Thread Safe에 대해서 알아보기 전에 Thread란 무엇인지 부터 알아보자..! 💡Thread란? 스레드(Thread)는 컴퓨터 프로세스 내에서 실행되는 가장 작은 실행 단위입니다. 스레드는 프로세스 내에서 독립적으로 실행되며, 각각의 스레드는 고유한 코드 흐름을 가지고 있습니다.모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행합니다. 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 합니다. 💡Thread Safe란? "Thread Safe(스레드 안전)"란 다중 스레드 환경에서 여러 스레드가 동시에 하나의 자원 또는 데이터를 접근하더라도 예상대로 동작하는 상태를 의미합니다.보다 엄밀하게는 하나의 함수가 한 스레드로부터.. 2023. 9. 30.
[Java]String, StringBuilder, StringBuffer의 차이 💡String 클래스 불변(Immutable) 클래스: String 클래스는 한 번 생성되면 내용을 변경할 수 없는 불변 클래스입니다. 문자열을 수정하려면 항상 새로운 String 객체를 생성해야 합니다. 스레드 안전(Thread-Safe): String 객체는 여러 스레드에서 동시에 사용해도 안전합니다. 따라서 멀티스레드 환경에서 문자열을 다룰 때 이점을 가집니다. 성능 이슈: 문자열을 수정할 때마다 새로운 객체를 생성하기 때문에 문자열 연산이 반복되면 메모리 사용량이 증가하고 성능 저하가 발생할 수 있습니다. 사용 사례: 문자열 수정이 거의 없거나 스레드 안전성이 요구되는 경우에 적합합니다. 1 2 3 String str = "Hello"; str = str + " World"; // 새로운 Stri.. 2023. 9. 30.
[Java] 컴파일러(Compiler) vs 인터프리터(Interpreter) 💡Compiler 실행 속도: 컴파일러는 소스 코드를 미리 컴파일하여 기계어로 변환하기 때문에 실행 시 속도가 빠릅니다. 실행 중에 해석할 필요가 없기 때문입니다. 최적화: 컴파일러는 미리 최적화를 수행할 수 있으며, 실행 시간 및 메모리 사용량을 최적화할 수 있습니다. 보안: 컴파일된 코드는 원본 소스 코드를 볼 수 없기 때문에 소스 코드의 보안을 높일 수 있습니다. 오류 검출: 컴파일러는 코드를 컴파일하기 전에 구문 및 의미적 오류를 검출하므로 런타임 오류가 발생할 가능성이 낮아집니다. 플랫폼 독립성: 바이너리 코드로 컴파일된 프로그램은 특정 플랫폼에 종속되지 않고 여러 플랫폼에서 실행될 수 있습니다. 💡Interpreter 실행 속도: 인터프리터는 코드를 한 줄씩 읽어 해석하므로 컴파일러에 비해 실.. 2023. 9. 29.
[Java] 컴파일 과정 ✔️컴파일이란? 프로그래밍 언어로 작성한 코드는 사람이 이해하고 작성하기 편리한 형태입니다. 그러나 컴퓨터는 이러한 코드를 직접 실행할 수 없습니다. 여기에서 컴파일러가 등장합니다. 컴파일러는 프로그래머가 작성한 소스 코드를 기계어 또는 중간 코드로 변환하여 컴퓨터가 이해하고 실행할 수 있게 합니다. 이러한 과정을 컴파일 이라고 합니다. 💡컴파일 과정 1. 소스 코드 작성 Java 프로그램을 개발할 때, 먼저 텍스트 편집기(예: 텍스트 에디터, 통합 개발 환경(IDE))를 사용하여 Java 소스 코드를 작성합니다. 소스 코드는 .java 확장자를 가지며, Java 프로그램의 모든 기능과 동작을 정의하는 곳입니다. 1 2 3 4 5 6 public class HelloWorld { public static.. 2023. 9. 28.
[MySql] ORM이란? ✔️ORM이란? ORM(객체 관계 매핑, Object-Relational Mapping)은 객체 지향 프로그래밍 언어와 관계형 데이터베이스 간의 데이터 매핑을 자동화하는 기술입니다. ORM은 객체와 데이터베이스 간의 불일치(impedance mismatch) 문제를 해결하고 개발자가 SQL 쿼리를 직접 작성하지 않고도 데이터베이스와 상호 작용할 수 있게 합니다. 아래에서 ORM의 주요 개념과 작동 원리를 자세히 설명하겠습니다. 💡 ORM의 주요 개념 엔티티 (Entity) 엔티티는 데이터베이스 테이블과 매핑되는 객체를 나타냅니다. 예를 들어, 사용자 정보를 저장하는 데이터베이스 테이블과 매핑되는 User 클래스는 엔티티입니다. 속성 (Attribute) 속성은 엔티티의 필드 또는 프로퍼티를 나타냅니다. .. 2023. 9. 27.
[CS] Java신입개발자 기술면접 질문 정리 (업데이트 中) 💡컴파일의 과정 더보기 ▶️Compiler vs Interpreter 💡String,StringBuilder,StringBuffer의 차이 더보기 ▶️Thread Safe란 ▶️Java의 String이 불변객체인 이유 💡Java의 접근 제어자의 종류와 특징 💡OOP의 4가지 특징 더보기 ▶️캡슐화와 은닉화의 차이 💡OOP의 5대원칙(SOLID) 💡JVM의 구조 💡클래스,객체,인스턴스의 차이 💡Interface와 Abstract Class의 차이 💡CheckedException과 UncheckedException의 차이 💡Call by Reference와 Call by Value의 차이 더보기 ▶️자바는 둘 중에 어디에 해당할까? 💡HashMap vs HashTable vs ConcurrentHashMap.. 2023. 9. 26.
[Java]MyBatis와 JPA ✔️MyBatis란? MyBatis는 SQL 기반 데이터베이스 액세스를 위한 오픈 소스 프레임워크입니다. MyBatis는 SQL 쿼리를 XML 또는 애노테이션을 통해 정의하고, Java 객체와 데이터베이스 레코드를 매핑합니다. MyBatis는 개발자가 SQL을 직접 작성하고 실행하는 방식으로 데이터베이스와 상호 작용할 수 있게 합니다. SQL 매핑과 데이터베이스 액세스를 세밀하게 제어할 수 있어 복잡한 쿼리와 성능 최적화에 용이합니다. ✔️JPA란? **JPA (Java Persistence API)**는 자바 표준 ORM (Object-Relational Mapping) 스펙입니다. JPA는 객체와 데이터베이스 간의 매핑을 자동화하고, SQL을 직접 작성하지 않고도 데이터베이스 액세스를 가능하게 합니다.. 2023. 9. 26.
[Java] JSP와 Servlet ✔️JSP(JavaServer Pages)란? JSP(JavaServer Pages)와 Servlet은 Java 웹 애플리케이션 개발에 사용되는 기술입니다. JSP는 HTML 내부에 Java 코드를 포함하여 동적 웹 페이지를 생성하는 데 사용됩니다. 💡JSP의 동작 원리 JSP 파일은 서블릿 코드로 변환되어 실행됩니다. JSP 파일을 웹 애플리케이션 서버에 배치하면 컨테이너가 JSP를 서블릿으로 변환하고 컴파일합니다. 변환된 서블릿은 요청을 처리하고 응답을 생성합니다. JSP 예제) 1 2 3 4 5 6 7 8 9 10 11 12 Hello JSP Hello, JSP! 현재 시간: cs ✔️Servlet이란? Servlet은 Java 클래스로 웹 애플리케이션의 요청과 응답을 처리하는 역할을 합니다. 💡S.. 2023. 9. 24.
반응형