전체 글 124

[MyBaits]Mapper의 쿼리 실행 후 조회 데이터의 개수를 가져오는 방법

Spring 프로젝트를 진행할 때 비즈니스 로직에서 mapper의 쿼리를 호출할 때 조회된 행의 개수가 필요한 경우가 있다. 이때 개수를 가져오는 방법에 대해 알아보자. 조회된 행의 개수 가져오는 방법 가장 간단한 방법은 다음과 같습니다. SELECT COUNT(*) FROM users; 'SELECT COUNT( * ) ' 쿼리를 실행하여 조회된 데이터의 개수를 얻는 방법입니다. 이제 Mapper를 작성했으니 이를 호출하는 Java 코드를 작성해 보도록 하겠습니다. // Java 코드에서 MyBatis 사용 public interface UserMapper { int getUserCount(); } // 호출 예시 SqlSession sqlSession = sqlSessionFactory.openSes..

WEB/Spring 2023.08.08

[MySQL]UNION, UNION ALL(데이터 병합) 구문 알아보기

MySQL에서의 UNION 구문은 n개 이상의 조회 결과에 대한 데이터를 병합해 주는 구문입니다. 또한 UNION, UNION ALL 이 두 개의 사용에 따라 조회 결과가 조금 달라지기 때문에 아래 예제를 보며 비교해보도록 하겠습니다. UNION, UNION ALL의 기본 문법 및 차이 MySQL에서 UNION과 UNION ALL은 두 개 이상의 조회 결과를 병합하는 경우에 사용됩니다. 하지만 두 개의 구문에서 병합 방식에 차이가 존재합니다. 기본 문법과 같이 차이점에 대해 알아보도록 하겠습니다. 우선 UNION입니다. SELECT column1, column2, ... FROM table_name1 UNION SELECT column1, column2, ... FROM table_name2; 다음으론 ..

RDBS/MYSQL 2023.08.04

트랜잭션의 핵심, Commit과 Rollback 이해하기

데이터베이스 관리 시스템에서의 Rollback과 Commit은 트랜잭션을 관리하기 위한 핵심 개념입니다. 이번 포스팅을 통해 어떻게 Commit과 Rollback으로 트랜잭션을 관리하는지에 대해 알아보도록 하겠습니다. 트랜잭션(Transaction)이란? 기본적으로 트랜잭션은 데이터베이스에서 한 번에 실행되어야 할 여러 작업들이 묶인 논리적인 작업 단위로, 데이터의 일관성과 무결성을 보장하는 데 매우 중요한 역할을 합니다. 2023.07.02 - [분류 전체 보기] - [MySQL] 트랜잭션(Trasaction) 예제로 간단하게 이해하기 [MySQL]트랜잭션(Trasaction) 예제로 간단하게 이해하기 트랜잭션(Transaction)이란 데이터베이스와 같은 시스템에서 처리되고 있는 업무 중 반드시 묶여..

CSR과 SSR는 어떤 차이가 있을까?

대표적인 렌더링 방식인 CSR과 SSR의 각각의 특징에 대해 알아보고 둘의 차이점에 대해 알아보도록 하겠습니다. 렌더링(Rendering) 이란? 렌더링(Rendering)이란 서버의 데이터와 화면 각 요소의 템플릿을 조합하여 시각적인 출력물을 생성하는 과정을 의미합니다. 일반적으로 사용자 인터페이스를 만들거나 화면에 노출되는 그래픽이나 텍스트를 출력하는 과정에서 렌더링을 하게 됩니다. 현재 우리가 사용하는 모든 웹 애플리케이션 또한 동일한 렌더링 과정이 발생하는데, 대표적인 렌더링 방식은 SSR(서버 사이드 렌더링)과 CSR(클라이언트 사이드 렌더링)이 있습니다. 이 두 개의 렌더링 방식에 동작과정 및 차이에 대해 알아보도록 하겠습니다. SSR(서버 사이드 렌더링) 이란? 서버 사이드 렌더링(Serve..

WEB/Study 2023.08.02

웹 애플리케이션의 보안의 기본, Spring Security 알아보기

Spring Security는 Spring 기반 웹 애플리케이션의 보안성을 올리기 위해 활용되는 프레임워크로서, 사용자 인증, 인가, 보안 설정 등 다양한 기능을 제공합니다. 이 글에서는 Spring Security의 기본 개념과 주요 기능을 소개하고, 웹 애플리케이션 보안 강화를 위한 최적의 방법 또한 알아보도록 하겠습니다. Spring Security란? Spring Security는 웹 애플리케이션의 보안성을 높이기 위해 사용되며, 간편하게 개발 및 관리할 수 있습니다. 또한 이 프레임워크를 사용함으로써 개발자들이 보안에 더욱 집중할 수 있게 되며, 더 나아가 취약점을 최소화하는 안전한 웹 애플리케이션의 구축을 할 수 있도록 도와줄 수 있습니다. 이제 Spring Security에 주요 특징과 기능..

WEB/Spring 2023.07.26

[MySQL]인덱스(INDEX)가 웹 애플리케이션의 성능을 올릴 수 있는 이유

데이터베이스에는 대량의 데이터가 존재하는 테이블에서 필요한 데이터를 빠르게 조회하기 위한 자료구조로, 인덱스(INDEX)를 사용하고 있다. 이러한 인덱스(INDEX)의 사용으로 대용량의 데이터가 존재하는 웹 애플리케이션에서 성능을 낼 수 있다. 인덱스(INDEX)란 무엇인가? 인덱스(INDEX)는 데이터베이스에서 제공해 주는 자료구조로 데이터를 빠르게 조회하는 데 사용할 수 있습니다. 정렬된 형태로 테이블의 특정 칼럼에 생성되며, 실제 지정된 칼럼을 기준으로 데이터를 조회할 때 더욱 빠르게 데이터를 조회할 수 있습니다. 즉, 특정 칼럼에 색인을 주어 검색 속도를 향상하기 위해 사용됩니다. Full Scan VS Range Scan 그렇다면 이제 인덱스(INDEX)를 사용하는 것이 아닐 때 보다 왜 높은 ..

RDBS/MYSQL 2023.07.24

[Java]다양한 Exception handling(예외 처리) 알아보기

실행되고 있는 프로그램이 비정상적인 종료가 된다거나 오작동을 하게 되면 심각한 문제를 야기하게 됩니다. 이러한 문제를 야기하는 원인에는 바로 Error와 Exception이 있습니다. 이번 포스팅은 Error(오류)와 Exception(예외)의 차이를 명확히 구분하고, 예외 처리(Exception Handling)에 대해 알아보도록 하겠습니다. Error와 Exception의 차이는? 오류(Error)는 시스템 수준에서 발생하는 심각한 예외 상황을 말합니다. 일반적으로 개발자가 코드에서 직접 수정할 수 없으며, 보통 소프트웨어 외적인 부분에서 발생하는 문제를 의미합니다. 하지만 예외(Exception)는 프로그램 실행 도중 예상치 못한 상황이 발생할 때를 말합니다. 오류와 다르게 예외는 프로그램 내부에서..

Languages/Java 2023.07.23

[Java]정규식(Regular Expression) - 유용한 문자열 처리를 위한 강력한 도구

Java의 정규식(Regular Expression)은 문자열 처리에 있어서 강력하고 유용한 도구로서 널리 활용되고 있습니다. 정규식은 특정 패턴을 표현하는 문자열로, 문자열 검색, 추출, 대체 등 다양한 작업에 사용됩니다. 이번 글에서는 Java에서 정규식을 사용하는 방법과 주요 기능들에 대해 알아보겠습니다. 정규식(Regular Expression)을 사용하는 이유 정규식을 활용하면 문자열 처리와 데이터 추출에 있어서 강력하고 유연한 도구를 제공합니다. 정규식은 프로그래밍에서 많이 사용되는 기술 중 하나로, 코드의 가독성과 유지보수성을 높이고, 데이터 처리에 있어서도 높은 효율성을 얻을 수 있습니다. 이제 Java에서 정규식을 사용하는 방법과 핵심 기능에 대해 알아보도록 하겠습니다. Pattern 클..

Languages/Java 2023.07.23

[Java]인터페이스 - 객체지향 프로그래밍의 주요 개념과 활용방법

객체지향언어는 무엇인가?라는 질문을 한다면 개발을 하는 사람 10명 중 8명 이상은 JAVA라고 답할 것입니다. 이러한 객체 지향 방식에는 엄연한 4가지의 특성이 있습니다. 바로 캡슐화, 상속, 추상화, 다형성이 있다. 이러한 4가지 특성을 이용하여 객체 지향 개발 원칙 "SOLID"를 지켜 개발자들은 프로그래밍합니다. 이러한 SOLID 원칙을 잘 지킨 프로그램은 유지보수가 아주 쉬워지는 결과를 갖게 됩니다. 그 이유는 SOLID를 잘 지킨 객체 지향 프로그램은 클래스 간의 영향력을 적게 주고, 클래스 내부적으로 응집하게 됩니다. 따라서 클래스 하나하나가 독립적인 모듈이 되고, 수정이 필요하다면 클래스만 수정하면 되기 때문에 유지보수가 쉬운 완성도 높은 프로그램이 됩니다. 이러한 방식의 프로그래밍을 하기..

Languages/Java 2023.07.23

[MySQL]데이터베이스 튜닝, 최적의 성능을 위한 5가지 핵심 팁

MySQL은 데이터베이스 관리 시스템으로서 웹 애플리케이션 및 서비스에서 데이터의 효율적인 저장과 처리를 지원하는 핵심 요소입니다. 그러나 효율적이고 최적화된 데이터베이스를 유지하는 것은 웹 사이트의 SEO와 성능에 큰 영향을 미치는 중요한 과제입니다. 이번 글에서는 MySQL 데이터베이스를 튜닝하는데 필수적인 5가지 핵심 팁을 소개합니다. MySQL 튜닝을 해야 하는 이유 MySQL 튜닝을 해야 하는 이유는 웹 애플리케이션 또는 서비스의 성능을 향상하고, 데이터베이스의 효율성과 안정성을 개선하기 위해서입니다. MySQL의 튜닝 방법 : 인덱싱 최적화 적절한 인덱스를 추가하여 데이터베이스의 조회 성능을 향상합니다. 자주 사용되는 칼럼과 검색 조건에 대해 인덱스를 생성하고, 중복 인덱스를 피하도록 주의합니..

RDBS/MYSQL 2023.07.22