분류 전체보기

    [Java] String, StringBuffer, StringBuilder의 차이점

    [Java] String, StringBuffer, StringBuilder의 차이점

    [Java] String, StringBuffer, StringBuilder의 차이점 오늘은 Java에서 문자열을 다루는 클래스인 String, StringBuffer, StringBuilder에 대해 알아보고 차이점을 정리해보고자 한다. String 클래스 String 클래스는 문자열을 다루기 위한 클래스 중 가장 기본적인 클래스이다. String 클래스는 한 번 생성된 문자열은 변경할 수 없다는 불변(immutable)한 객체이다. 이는 즉, String 객체가 생성된 후에는 그 객체의 내용을 변경할 수 없다는 의미이다. 따라서 String 객체를 생성하기 위해서는 새로운 String 객체를 생성하여야 한다. String str = "Hello"; str += " world"; 위 코드는 "Hello..

    [백준] 에라토스테네스의 체

    [백준] 에라토스테네스의 체

    [백준] 2960번 에라토스테네스의 체 자바 들어가며 오늘은 시간 복잡도를 고려하여 소수를 찾는 알고리즘은 에라토스테네스의 체와 관련 문항에 대해서 정리해보려 한다. 에라토스테네스의 체 에라토스테네스의 체는 소수를 찾는 대표적인 알고리즘이다. 위 이미지는 에라토스테네스의 체의 원리를 잘 나타내고 있다. 원리 2부터 소수를 구하고자 하는 구간(N, 위 이미지에서는 120)의 모든 수를 나열한다.(주로 N+1까지의 int 배열을 생성한다.) 생성한 int 배열을 for문을 활용, i = 2부터 i

    스택(Stack)과 큐(Queue)

    스택(Stack)과 큐(Queue)

    스택(Stack)과 큐(Queue) 오늘은 데이터 자료구조 - 스택과 큐에 대해서 정리해보고자 한다. 스택(Stack) 스택(Stack)이란 문자 그대로 '쌓아 올린다는 것'을 의미한다. 스택이라는 자료구조 또한 책을 쌓는 것과 같이 차곡차곡 쌓아 올린 형태의 자료구조를 말한다. 특징 스택은 위 이미지와 같이 같은 구조의 데이터를 정해진 방향으로만 쌓을 수 있으며 top으로 정한 곳을 통해서만 접근 가능하다. top은 가장 위에 있는 자료, 즉 가장 최근에 들어온 자료를 가르키고 있으며 사입되는 새 자료는 기존 top이 가리키던 자료의 위에 쌓이게 된다. 스택에서 자료를 삭제할 때도 top을 통해서만 가능하다. 스택에서 top을 통해 삽입하는 연산을 'push', 삭제하는 연산을 'pop'이라고 한다. ..

    [Java] 자바 추상클래스와 인터페이스의 차이

    [Java] 자바 추상클래스와 인터페이스의 차이

    [Java] 추상클래스와 인터페이스의 차이 들어가며 오늘은 자바 추상클래스와 인터페이스의 차이에 대해서 정리해보고자 한다. 추상클래스(abstract class) 클래스를 설계도에 비유한다면 추상클래스는 미완성 설계도에 비유할 수 있다. public abstract class animal {} class 앞에 'abstract' 키워드를 붙여 사용하며, 일반적으로 하나 이상의 추상 메서드를 가진 클래스를 말한다. 추상 메서드를 선언함으로써 상속을 통해 하위 클래스에서 이를 구현하도록 강제하는 클래스이다. (추상 메서드를 포함하지 않는 클래스에도 'abstract'를 붙여 추상 클래스로 지정 가능하지만, 반대로 추상 메스드를 포함하는 클래스는 반드시 추상 클래스여야 한다.) abstract로 선언된 추상 ..

    조인의 종류

    조인의 종류

    기술면접 대비 - 조인(JOIN) 오늘은 조인과 조인의 대표적인 종류들에 대해서 정리해보고자 한다. 조인(JOIN) 조인이란 하나의 테이블이 아닌 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것을 말한다. INNER JOIN(내부 조인) 왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 표기한다. SELECT * FROM TableA A INNER JOIN TableB B ON A.key = B.key LEFT OUTER JOIN(왼쪽 조인) LEFT OUTER JOIN은 테이블 B의 일치하는 부분의 레코드와 함께 테이블 A를 기준으로 완전한 레코드를 생성한다. 만약 테이블 B에 일치하는 항목이 없으면 해당 값은 null 값이 된다. SELECT * FROM TableA A..

    인덱스

    인덱스

    기술면접 대비 - 인덱스(Index) 오늘은 인덱스와 이전 부트캠프 프로젝트 진행 당시 적용하였던 Full Text Index / Ngram Parser에 대해 다시 한 번 정리해보고자 한다. Full Table Scan 순차 접근 원하는 데이터를 얻기 위하여 데이터가 저장된 목록 중 모든 데이터 요소를 차례로 조사하여 원하는 데이터를 찾아 내는 방식. (만약 약 1억 건의 데이터가 있다면 1억 번의 데이터 조회가 발생할 수도) 인덱스(Index) 인덱스는 데이터를 빠르게 찾을 수 있는 하나의 장치이다. 일반적으로 책 마지막 장에 있는 '찾아보기'와 유사하다고 할 수 있다. 원하는 내용(데이터)를 얻기 위해 책을 처음부터 끝까지 훑는 것은 상당히 비효율적이기에 '찾아보기'를 보고 원하는 데이터를 얻는 방..

    트랜잭션

    트랜잭션

    기술면접 대비 - 트랜잭션(Transaction) 오늘은 트랜잭션에 대해서 알아보고자 한다. 트랜잭션(Transaction) 트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말한다. 데이터베이스에 접근하는 방법은 쿼리(Query)이므로, 즉 여러 개의 쿼리들을 하나로 묶는 단위를 말한다. 트랜잭션의 특징으로는 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durabiltiy)이 있으며 통칭 ACID 특징이라 한다. ACID 트랜잭션은 데이터의 무결성을 보장한다. 데이터의 무결성 데이터의 정확성, 일관성, 유효성을 유지하는 것을 말한다. 데이터의 무결성이 보장되어야 데이터의 중복, 누락, 잘못된 논리 관계로 인한 문제 등이 발생..

    ERD와 정규화 과정

    ERD와 정규화 과정

    기술면접 대비 - ERD와 정규화 과정 오늘은 ERD와 정규화 과정에 대하여 간단하게 정리해보고자 한다. ERD(Entity Relationship Diagram) ERD는 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 하며, 릴레이션(테이블) 간의 관계들을 정의한 것이다. Entity(엔터티) 엔터티는 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사를 의미한다. ERD의 중요성 ERD는 시스템의 요구 사항을 기반으로 작성되며 이 ERD를 기반으로 데이터베이스를 구축한다. 데이터베이스를 구축한 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우에 설계도 역할을 담당하기도 한다. 정규화 정규화란 릴레이션(테이블) 간의 잘못된 종속 관계로 인하여 데이터베이스 이상 현상이 일어..