Backend/Java(20)
-
Statement, PreparedStatement 란?
✔️Statement란?정의Statement는 Connection 객체로부터 sql문을 DB에 전달하여 실행하고 결과를 리턴 받는 객체이다.DDL(CREATE, ALTER, DROP) 구문을 처리할 때 적합하다.매 실행 시 Query를 다시 파싱 하기 때문에 속도가 느리며, SQL Injection공격에 취약하다.※SQL Injection: 악의적인 사용자가 보안상 취약점을 이용하여, 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위.사용 예시Statement stmt = null;String query = "select * from employees";try { stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(query);..
2024.10.31 -
가비지컬렉터 란?
✔️가비지 컬렉터란?사용하지 않는 객체의 메모리를 GC(Garbage Collector)가 주기적으로 검사해서 청소해준다.왜 사용하지 않는 객체의 메모리를 청소할까?C와 C++ 같은 Unmanaged language는 free()와 같은 함수를 사용해서 메모리를 직접 메모리를 해제해야 한다.이런 번거로운 일을 GC가 대신 해주고 있는 것이다.사용하지 않는 객체의 메모리 점유는 결국 메모리 누수로 이어지게 된다.메모리는 한정된 자원이기 때문에 사용하지 않거나 필요가 없는 부분은 해제를 해주는 것이 맞다. 💥가비지 컬렉터와 가비지 컬렉션의 차이는?가비지 컬렉터 : 메모리 관리를 담당하는 시스템 또는 프로그램의 구성 요소이며, 메모리에서 더 이상 사용되지 않는 객체를 찾아 제거하여 메모리를 회수하는 역할을 ..
2024.10.25 -
자바 StringBuilder StringBuffer 차이
Java에서 String 클래스는 불변성을 갖습니다.따라서 변하지 않는 문자열을 자주 사용하는 경우엔 좋은 성능을 기대할 수 있습니다.하지만 문자열에 대한 변경이 자주 일어나는 프로그램에서 String만 사용하게 된다면 효율적인 성능을 기대하기 어렵습니다. 이를 해결하기 위해 StringBuilder , StringBuffer을 사용하면 효율적인 성능을 보일 수 있습니다.언제 StringBuilder를 사용하는지?, 또 언제 StringBuffer을 사용하는지? 에 대하여 살펴봅시다. 우선 String 부터 살펴봅시다. ✔️ String문자열(String)은 자바 프로그램이 실행되는 동안 가장 많이 생성되는 객체라고 할 수 있습니다.또한 문자열은 객체이지만 각각의 문자(char)의 나열로 구성되게 됩니다..
2024.10.15 -
자바 오버로딩 오버라이딩 차이
ㄴ자바의 특징이자 객체 지향(OOP) 4대 특성인 다형성을 지원하는 방법으로 메서드 오버로딩과 오버라이딩이 있다. 오버로딩(Overloading) 같은 이름의 메서드를 여러개 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술 오버라이딩(Overriding)상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의하는 기술 서로의 개념은 다르지만, 이름이 비슷하여 자주 헷갈리곤 합니다. 그래서 이번 글에서는 오버로딩과 오버라이딩의 차이점을 하나하나 살펴보고 예제로도 알아보겠습니다.(실제로 면접에서 자주 나오는 질문이라고 합니다만, 저는 면접을 본적이 없어서 잘 모르겠네요..) ✔️오버로딩(Overloading)오버로딩이란 같은 이름의 메서드를 여러개 정의하고, 매개변수의 유형과 개수를 다르게 하여 메서드..
2024.10.14 -
자바 JVM 이란?
✔️JVM 이란? Java Virtual Machine의 줄임말.직역하면 '자바를 실행하기 위한 가상 기계(컴퓨터)'라고 할 수 있습니다.Java 는 OS에 종속적이지 않다는 특징을 가지고 있습니다. OS에 종속받지 않고 실행되기 위해선 OS 위에서 Java 를 실행시킬 무언가가 필요하는데, 그게 바로 JVM 입니다.즉, OS에 종속받지 않고 CPU 가 Java를 인식, 실행할 수 있게 하는 가상 컴퓨터. ✈️컴파일 과정Java 소스코드, 즉 원시코드(*.java)는 CPU가 인식을 하지 못하므로 기계어로 컴파일을 해줘야 합니다.하지만 Java는 이 JVM 이라는 가상머신을 거쳐서 OS에 도달하기 때문에 OS가 인식할 수 있는 기계어로 바로 컴파일 되는게 아니라 JVM이 인식할 수 있는 Java byte..
2024.05.17 -
자바 컬렉션
컬렉션 프레임워크 장점자바만의 컬렉션 프레임워크의 장점에는 다음과 같다.인터페이스와 다형성을 이용한 객체지향적 설계를 통해 표준화되어 있기 때문에, 사용법을 익히기에도 편리하고 재사용성이 높다.데이터 구조 및 알고리즘의 고성능 구현을 제공하여 프로그램의 성능과 품질을 향상시킨다.관련 없는 API 간의 상호 운용성을 제공한다. (상위 인터페이스 타입으로 업캐스팅하여 사용)이미 구현되어있는 API를 사용하면 되기에, 새로운 API를 익히고 설계하는 시간이 줄어든다.소프트웨어 재사용을 촉진한다. 만일 자바에서 지원하지 않는 새로운 자료구조가 필요하다면, 컬렉션들을 재활용하여 좁합하여 새로운 알고리즘을 만들어낼 수 있다.Tip컬렉션 프레임워크에 저장할 수 있는 데이터는 오로지 객체(Object) 뿐이다. 즉, ..
2024.04.19