분류 전체보기 124

[Java]ArrayList와 LinkedList 적절하게 사용하기(Java의 동적 배열)

실제 프로그래밍 언어에서 가장 많이 사용되는 자료구조는 바로 리스트이다. Java에서 제공하는 리스트 인터페이스로 구현된 ArrayList와 LinkedList를 알아보고 적절하게 사용하는 방법을 알아보도록 하자. [Java]컬렉션(Collection)의 개념과 구조 파악 하기 📌컬렉션(Collection)의 개념과 구조 파악 하기 JAVA의 컬렉션(collection>이란 데이터의 집합을 의미하며 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고과적으로 처리할 수 있는 표준화 mooonstar.tistory.com 일반 배열과의 다른 점은? ArrayList는 일반적으로 배열을 사용한다. 하지만 Array를 사용하지 않고 ArrayList를 사용하는 이유가 있다. 그 이유..

Languages/Java 2023.07.06

[MySQL]WITH ROLLUP(그룹 소계 함수)와 GROUP BY와 비교하기

데이터에 대한 집계는 GROUP BY라는 구문을 사용한다. 하지만 GROUP BY는 그룹화할 칼럼에 대한 집계만 이루어진다. 하지만 각 칼럼별 집계된 값에 대한 총합이 필요한 경우 WITH ROLLUP문을 사용하여 원하는 데이터를 조회할 수 있다. [MySQL]그룹화 하고 조건 부여하기(Group By절, Having절) 📌그룹화 하고 조건 부여하기(Group By절, Having절) 실무에서 가장 많이 사용되고, 가장 이해하기 어려운 GROUP BY에 대해 알아보도록 하겠습니다. 이 구문은 실제 데이터를 조회하면서 데이터를 집 mooonstar.tistory.com WITH ROLLUP 구문 SELECT SUM(COST) FROM PRICE GROUP BY COST WITH ROLLUP; 기본적인 문법..

RDBS/MYSQL 2023.07.04

[MySQL]트랜잭션(Trasaction) 예제로 간단하게 이해하기

트랜잭션(Transaction)이란 데이터베이스와 같은 시스템에서 처리되고 있는 업무 중 반드시 묶여서 처리되어야 하는 묶음의 최소단위이다. 일상생활에서 많이 사용되고 있는 트랜잭션 중 하나가 바로 송금 서비스이다. 이 과정을 들여다보면 A라는 사람이 B에게 송금을 한다고 가정해 보자. 트랜잭션(Transaction)으로 구성하는 이유 A의 잔고 : 금액 차감 B의 잔고 : 금액 증가 이러한 두 과정은 각각의 업무이지만 하나의 트랜잭션(Transaction)으로 구성되어 처리된다. 만약 위의 두 과정을 트랜잭션(Transaction)으로 구성하지 않고 시스템을 운영하면 어떤 일이 벌어질까? 단일 사용자이고, 두 개의 업무가 순서대로 처리된다면 문제가 없을 것이다. 하지만 대부분에 시스템에는 여러 개의 클..

RDBS/MYSQL 2023.07.02

[Java]do while, while문은 어떤 상황에서 사용할까?

프로그래밍을 하다 보면 코드가 반복하여 실행되는 경우가 있다. 이런 경우에 사용하는 여러 가지 방법이 있는데 이번 포스팅에서는 사용 방법이 유사한 while문과 do while 문의 차이를 알아보고 어떤 상황에 사용을 해야 하는지에 대해 알아보도록 하겠습니다. 가장 자주 사용되는 for문 [Java]일반적인 for문과 이후의 등장한 향상된 for문 알아보기 프로그래밍을 하면서 일반적으로 사용하는 for문은 초기값, 조건식, 증감식을 사용하여 다음과 같이 사용을 합니다. 초기화 : 반복문에서 사용될 변수를 초기화 조건식 : 조건식의 값이 참이어야 mooonstar.tistory.com 반복문 하면 가장 바로 떠오르는 구문은 바로 for문일 것입니다. 하지만 정해진 횟수만큼 반복하는 for문과 다르게 어떠한..

Languages/Java 2023.07.02

[Network]정보가 기록되는 쿠키와 세션, 그리고 캐시 알아보기

HTTP 프로토콜의 약점을 보완하기 위해 쿠키와 세션이란 개념이 등장하였다. 특정 정보를 담고 있다는 공통점을 가지고 있지만, 쓰임과 특징이 다른 두 개념 쿠키와 세션에 대해서 알아보도록 하겠습니다. 쿠키와 세션의 특징 알아보기 쿠키의 특징 쿠키가 담고 있는 정보는 이름, 값, 만료일, 경로이다. 로컬에 총 300개의 쿠키를 저장할 수 있다. 도메인 당 20개의 쿠키를 가질 수 있다. 하나의 쿠키는 4KB까지 저장 가능하다. 이러한 특징을 바탕으로, 사용자가 웹사이트에 접근함과 동시에 서버에서 쿠키를 생성하고, 생성된 쿠키 안에 정보를 담아 사용자에게 돌려준다. 또한 로컬에 특정 사이트의 쿠키가 저장되어 있다면 재방문 시 요청 페이지와 쿠키를 전송한다. 세션의 특징 웹 서버의 웹 컨테이너의 상태를 유지하..

Network 2023.06.28

[MySQL]문자열의 대소문자를 변경하는 방법(UPPER, LOWER함수)

SQL로 데이터를 조회하는 과정에서 문자열 데이터의 통일성을 위해 대, 소문자로 변경해야 하는 경우가 발생합니다. 이러한 경우에 MySQL이 제공하는 함수를 사용하여 간단하게 변환할 수 있습니다. UPPER, LOWER의 기본 구조 #UPPER : 소문자 -> 대문자 #LOWER : 대문자 -> 소문자 UPPER , LOWER 예시 SELECT UPPER('Test'); #TEST SELECT LOWER('TeSt'); #test

RDBS/MYSQL 2023.06.25

[MySQL]WITH문을 사용하여 가상의 테이블을 만들어 사용하기

SQL을 사용하여 대량의 데이터를 다루는 경우, 임의의 결과를 저장할 때마다 테이블에 저장할 수 없다. 그렇다고 해서 그때마다 테이블을 생성할 수도 없다. 이러한 이 유로 인해 임시 결과를 정의하고 사용하는 경우의 임시테이블을 만들어 해당 테이블에 값을 저장할 수 있다. 이번 포스팅은 임시 테이블을 만들고, 실제 자주 사용하는 구문인 WITH문에 대해 알아보도록 하겠습니다. WITH문은 언제 사용할까? 실제 실무에서는 동일한 SQL이 반복되어 사용되는 경우가 많다. 하지만 그때마다 동일한 쿼리를 실행하게 된다면, 프로그램 전체적으로 성능이 느려지는 문제가 발생한다. 이러한 상황에서 반복적인 사용을 가능하게 해주는 구문이 WITH 절입니다. 즉, 게임에서 사용하는 매크로와 마찬가지로 한번 지정해 주면 자동..

RDBS/MYSQL 2023.06.25

[Java]Stream 살펴보기_(2)Filter를 사용한 데이터 추출하기

[Java]stream 살펴보기_(1)등장 배경, 컬렉션과의 차이 2023.03.29 - [Languages/Java] - [Java] 컬렉션(Collection)의 개념과 구조 파악 하기 [Java]컬렉션(Collection)의 개념과 구조 파악 하기 📌컬렉션(Collection)의 개념과 구조 파악 하기 JAVA의 컬렉션(collection>이란 데 mooonstar.tistory.com 이전 포스팅에서 Java 8 이후에 등장한 스트림(Stream)에 대하여 알아보았습니다. Stream API는 생성, 중개, 종료의 구조로 사용되는데 이번 포스팅에서는 중개연산 방법 중 하나인 Stream Filter를 사용하여 생성된 스트림에서 데이터를 추출해 보도록 하겠습니다. Stream Filter란? Jav..

Languages/Java 2023.06.24

[Java]다형성을 지원하는 방법 오버로딩과 오버라이딩 개념 잡기

객체지향 언어 Java의 중요 개념 중 하나인 '다형성'을 지원하는 방법으로 오버로딩과 오버라이딩이 있습니다. 개념은 다르지만 이름부터 비슷한 이 두 개의 단어를 이번 포스팅에서 예제를 통해 확실히 구분하도록 하겠습니다. Java의 다형성이란? 다형성의 사전적 의미는 다음과 같습니다. 다형성이란, 그 자체의 의미를 표준 국어사전에서 찾아보면, '같은 종의 생물이면서도 어떤 형태나 형질이 다양하게 나타나는 현상' 이라 정의함 위의 내용을 프로그래밍 관점으로 실제 예시를 들어보도록 하겠습니다. 위의 이미지를 보면, 세 개의 차량 모두 차라는 공통점을 가지고 있지만, 모양과 기능은 제각각이고 그에 따라 차량의 가격도 상이합니다. 코드를 보겠습니다. //공통 class CAR { void light_On() {..

Languages/Java 2023.06.24

[Java]Static의 사용을 지양해야하는 이유(정적 변수, 정적 메서드)

처음 Java에 대해 배울 때 코드에서 자주 볼 수 있는 단어는 바로 Static이다. Java에서의 static이라는 키워드를 사용해서 정적 필드와, 정적 메서드를 만들 수 있다. 이 둘을 합쳐 클래스 멤버라고 표현된다. 이렇게 생성된 클래스 멤버는 클래스에 고정된다. 이번 포스팅에서는 '정적'이라는 뜻을 가지고 있는 Static의 사용을 지양해야 하는 이유에 대해 알아보도록 하겠습니다. Static 사용이 메모리의 미치는 영향 Static으로 생성된 정적 멤버는 프로그램의 실행됨과 동시에 메모리에 올라간다. 이러한 이유로 인해 사용되지 않음에도 불구하고 메모리를 차지하고 있기 때문에 불필요한 자원이 낭비되고 있는 셈이다. 또한 Static을 사용해 만들어진 변수와 클래스는 앞에 '전역'이라는 의미가 ..

Languages/Java 2023.06.18