본문 바로가기

분류 전체보기329

[Spring Boot] Mybatis 동적쿼리 LIKE 사용 방법 스프링 부트와 같은 거대한 프레임워크를 공부하다 보면 문법에 맞지 않아서 고생(보통 '삽질')을 많이 합니다. 웹 프로그래밍을 할 때, 보통 DB에서 무엇인가를 가져오기 위해 쿼리를 작성합니다. 이때 오류가 가장 많이 나타나는 것 같습니다. 이번 포스팅에서는 Mybatis 사용시 동적 쿼리 중 LIKE를 사용하는 방법에 대해서 알아보도록 하겠습니다. SQL에서 포함되는 글자를 찾아주는 LIKE 관계형 데이터베이스(RDBMS)에서 특정 문자열이 있는지 검색하고 싶을 때 사용하는 문법이 LIKE입니다. LIKE문의 사용법은 아래와 같이 사용합니다. SELECT * FROM table_name WHERE column_name LIKE '%test%'; MySQL 또는 MariaDB의 Query 구문입니다. 조.. 2021. 3. 12.
[MongoDB] MongoDB에서 사용하는 JSON vs BSON 몽고DB는 Document로 데이터를 관리하고 있습니다. 이때 우리 눈으로 데이터를 받아보면 모두 JSON형태로 데이터를 보여주고, 저장합니다. 또 검색기능을 사용할 때에도 JSON문법에 맞게 입력해줍니다. 몽고DB에서는 데이터를 BSON형태로 저장하여 사용하고 있습니다. 그래서 JSON은 무엇이고 BSON이 무엇인지 궁금해서 찾아보았습니다. 이 포스팅에서는 몽고DB에서 사용하는 JSON과 BSON에 대해서 알아보도록 하겠습니다. JSON이란 무엇인가 일반적으로 JSON은 JavaScript Object Notation의 줄임말로 Javascript 언어의 일부로 정의되어있는 형식이며 2013년에 공식화 된 형식입니다. JSON의 형태는 일반적으로 key와 value의 값으로 채워져 있습니다. 직관적이고.. 2021. 3. 11.
[iOS Update] iOS 14.4.1 보안 업데이트 배포 애플에서 마이너한 업데이트가 배포되었습니다. 이번에 배포된 버전은 iOS 14.4.1 버전입니다. 이번 업데이트를 통해서 변경되는 것은 무엇인지 알아보겠습니다. iOS 14.4.1 보안 업데이트 이번 업데이트를 통해서 중요한 보안관련 업데이트가 제공됩니다. 그래서 애플에서는 모든 아이폰 유저들에게 업데이트 할것을 권장하고 있습니다. 보통 보안 업데이트는 취약점을 개선하는 목적으로 업데이트가 제공됩니다. 유명 IT매체 나인투파이브맥(https://9to5mac.com)에서는 사파리 브라우저를 구동하는 앤진내에 메모리 손상 문제를 해결한다고 밝혔습니다. 이 업데이트 버전은 iPhone 6S 이후버전과 iPad Air 2, iPad min 4, iPod touch 7세대 이후 버전에서만 업데이이트가 가능합니다.. 2021. 3. 10.
[Spring Boot] 정적소스 수정 후 서버 재시작 없이 적용 방법 스프링 부트(Spring Boot) 개발을 공부하시다 보면 느껴지는 불편함이 있습니다. 바로 정적 소스들을 수정해도 브라우저에 바로 반영이 되지 않아서 서버를 항상 재시작해야 하는 점이죠. 그래서 이번 포스팅에서는 정적 소스(*.html, *. js, *. css)들을 수정하고 서버 재시작 없이 적용하는 방법에 대해서 알아보도록 하겠습니다. 서버 재시작 없이 정적소스 반영 1 : devtools 추가 첫 번째로 해야 할 일은 Maven에 devtools 라이브러리를 추가하는 것입니다. 보통은 개발 세팅을 할 때 미리 라이브러리를 추가해 주지만 추가가 되어 있지 않을 경우에 추가해 주시면 됩니다. 먼저 pom.xml파일을 열어서 아래 dependency를 추가해줍니다. org.springframework... 2021. 3. 9.
[Spring Boot] Mybatis 에서 SQL 조건문 사용 방법 스프링부트 프레임워크를 사용하면서 Mybatis를 이용해 DB에 접근해서 데이터를 가져오다보면 여러가지 다양한 조건이 필요합니다. 특히 조건이 다양하고 null 값이 포함될 수 있는경우 where 절에는 and 를 붙여서 길어질 수 있죠. 이때 저의 경우는 문제점이 하나 발생했습니다. 이번 포스팅에서는 스프링 부트 Mybatis 사용시에 발생될 수 있는 where절의 문제점을 해결해 보도록 하겠습니다. Spring Boot Mybais 조건 활용하기 SQL문을 이용해서 Query를 할 경우 다양한 조건이 포함될 수 있습니다. 이때 if ~ else와 동일한 조건문을 만들 수 있습니다. 이렇게 만드는 이유는 다음과 같습니다. SELECT * FROM board WHERE 조건1 and 조건2 and 조건3.. 2021. 3. 8.
[MongoDB] 몽고DB란 무엇인가 (feat. NoSQL) 가장 익숙한 데이터베이스들은 RDBMS라 해서 관계형 데이터베이스 입니다. 많이 알려진 RDBMS는 Oracle, Mysql, MriaDB, MS-SQL이며 최근에 다시 급 부상하고 있는 PostgreSQL이 있습니다. 이들은 모두 관계형 데이터 베이스입니다. Table과 row, column이 존재하고 Table간의 관계를 연결시켜서 데이터를 가져오는 형태입니다. 그리고 반대되는 개념은 아니지만 비교 대상중 하나로 NoSQL 데이터베이스가 있습니다. 대표적으로 MongoDB입니다. 몽고DB는 우리가 개발시 흔히 주고받는 JSON 형태의 데이터가 DB에 저장되는 형태입니다. 물론 실제 저장은 BSON을 이용합니다. 이번 포스팅에서는 MongoDB가 무엇이고 NoSQL이 무엇인지를 알아보도록 하겠습니다. .. 2021. 3. 3.
[Spring Boot] Lombok 어노테이션 활용하기 스프링 부트(Spring Boot) 프레임워크를 사용하다보면 데이터베이스를 접근해서 가져와 Class에 값을 담게 됩니다. 그래서 이 클래스에는 getter, setter를 포함해서 toString과 같은 메소드들이 포함되어 있습니다. 이러한 변수들은 모두 private으로 접근제한이 걸려있기 때문이죠. 이때 변수가 추가된다고 하면 각각의 변수에 getter와 setter를 만들어 줘야 하고 또 필요에 따라 생성자에 추가되거나 확인하기 위한 toString 메소드에도 추가되어야 합니다. 이럴때 편하게 사용할 수 있는 라이브러리가 바로 롬복(Lombok) 입니다. 그럼 Lombok은 어떠한 기능들을 가지고 있는지 알아보도록 하겠습니다. Lombok 어노테이션 @Getter @Setter Lombok 라이브.. 2021. 3. 2.
[Spring Boot] Eclipse 첫 프로젝트 생성시 pom.xml 에러 Java를 공부하고 JSP를 공부하다보면 결국엔 프레임워크 개발까지 하게 되는것 같습니다. 객체지향 언어자체가 워낙 프레임워크가 많아서 얼마나 잘 알고 사용하는지가 역량이라 생각됩니다. 언어를 알아도 최초 셋팅을 하거나 새롭게 프레임워크를 배우기 위해서 셋팅을 할때 아무것도 안했는데 에러가 나면 당황스러울때가 있습니다. 이번 포스팅에서는 Spring Boot로 첫 프로젝트를 Eclipse에서 생성했을때 pom.xml에서 발생하는 에러를 처리하는 방법을 알아보겠습니다. Spring Boot pom.xml 에러 없애는 방법 스프링 부트 사이트(https://start.spring.io/)에서 직접 다운로드를 받거나 Eclipse에서 개발할 경우 프로젝트를 생성하게 되면 기본적인 패키지들을 다운받고 pom.x.. 2021. 2. 26.
[AWS] 아마존 ec2 무료 티어 메모리 부족 현상 아마존 ec2 무료 티어는 가상 CPU 1개, 1 GiB의 메모리, 8 GiB의 스토리지를 가지는 서버입니다. 무료로 제공되는 만큼 대용량의 프로세스를 올리기에는 부족한 면이 있지만 공부하는 입장에서 사용하기에는 굉장히 좋은 서버라 생각되기도 합니다. 저도 아마존 ec2 무료티어에서 React를 공부하던 도중 이상한 점을 발견하였습니다. 소스를 수정하고 컴파일을 하게 되면 SSH이 끊긴다던지, VSCode가 끊기는 현상이 발생하는 겁니다. 이유는 메모리가 부족하다는 이유였습니다. 그래서 아마존에서는 이러한 부분을 보완하기 위해서 Swap을 하는 방법을 알려주고 있었습니다. 오늘 포스팅에서는 메모리가 부족해서 발생되는 현상을 보완하기 위한 swap을 알아보도록 하겠습니다. 스왑(Swap)이란 무엇인가 스왑.. 2021. 2. 15.