[MariaDB] EXISTS와 JOIN 차이 | 존재 여부만 확인할 때 뭘 써야 할까?
·
개발지식/DB
SQL을 작성하다 보면 다른 테이블에 데이터가 있는지 확인해야 하는 경우가 있다.이럴 때 JOIN을 사용할 수도 있고 EXISTS를 사용할 수도 있는데,처음에는 “둘 다 결과 나오는데 무슨 차이지?” 싶을 수 있다.특히 JOIN을 사용했을 때 예상보다 조회 결과가 많아지는 경우가 있어서간단한 테스트 데이터를 만들어 직접 비교해봤다.테스트 테이블 만들기먼저 사용자 정보를 저장하는 테이블을 만든다.CREATE TABLE USER_INFO ( USER_CD VARCHAR(20) NOT NULL, USER_NM VARCHAR(50) NOT NULL, PRIMARY KEY (USER_CD));포인트 이력을 저장하는 테이블도 하나 만든다.CREATE TABLE USER_POINT ( POINT..
[MariaDB] IFNULL과 COALESCE 차이 | NULL 값 처리하기
·
개발지식/DB
개발하다 보면 조회 결과에 NULL이 들어와서화면이나 계산할 때 애매해지는 경우가 있다.이럴 때 MariaDB에서는 대표적으로 IFNULL(), COALESCE() 를 사용할 수 있다.둘 다 NULL 값을 다른 값으로 바꿀 때 사용할 수 있는데 동작 방식에는 조금 차이가 있다.간단하게 정리해봤다.1. IFNULL 사용법IFNULL()은 값이 NULL이면 두 번째 값으로 바꿔준다. 형식은 간단하다.IFNULL(값, 대체값)예를 들어SELECT IFNULL(NULL, 0);결과는이 된다.NULL이 아니면 원래 값을 그대로 반환한다.SELECT IFNULL(100, 0);결과즉,NULL → 대체값NULL이 아님 → 원래 값이라고 생각하면 된다.2. 실제 컬럼에 IFNULL 사용하기예를 들어 아래와 같은 테이블..
[자바/JAVA] isEmpty와 isBlank 차이 | 빈 문자열, 공백 문자열 확인하기
·
개발지식/Java
개발하다 보면 문자열이 비어 있는지 확인해야 하는 경우가 있다.Java에서는 대표적으로isEmpty()isBlank()를 사용할 수 있는데, 둘이 비슷해 보여도 공백을 처리하는 방식에서 차이가 있다.간단하게 정리해봤다.isEmpty()isEmpty()는 문자열의 길이가 0인지 확인한다.public class Main { public static void main(String[] args) { String value1 = ""; String value2 = " "; String value3 = "Hello"; System.out.println(value1.isEmpty()); System.out.println(value2.isEmpty..
[자바/JAVA] double을 int로 변환하는 방법 | 캐스팅, Math.round 차이
·
개발지식/Java
개발하다 보면 double 값을 int로 바꿔야 하는 경우가 있다.처음에는 그냥 형변환하면 되는 줄 알았는데소수점을 버릴지, 반올림할지에 따라 사용하는 방법이 달라진다.간단하게 정리해봤다.1. 캐스팅으로 double → int 변환가장 간단한 방법은 (int)로 형변환하는 것이다.double value = 10.8;int result = (int) value;System.out.println(result); 결과 (int)로 변환하면소수점 아래 값은 그냥 버려진다.즉,10.8 → 1010.1 → 1010.9 → 10 처럼 처리된다.반올림이 아니라는 점만 주의하면 된다.2. Math.round()로 반올림하기소수점을 반올림해서 int로 변환하고 싶다면Math.round()를 사용할 수 있다.double v..
[MariaDB] 오늘 날짜 데이터 조회하기 | DATE, BETWEEN, 범위 조건 비교
·
개발지식/DB
개발하다 보면 REG_DT 같은 날짜 컬럼을 기준으로오늘 등록된 데이터만 조회해야 하는 경우가 있다. 처음에는 DATE()를 사용하는 방법이 가장 간단해 보이는데BETWEEN이나 >=, 세 가지 방법이 어떤 차이가 있는지 간단하게 정리해봤다.테스트 테이블 만들기먼저 테스트용 테이블을 하나 만들었다.CREATE TABLE USER_HISTORY ( HISTORY_ID INT NOT NULL AUTO_INCREMENT, USER_NM VARCHAR(100) NOT NULL, REG_DT DATETIME NOT NULL, PRIMARY KEY (HISTORY_ID)); 날짜 조건을 확인하기 위해전날, 오늘, 다음 날 데이터를 각각 넣어준다.INSERT INTO USER_HISTORY ( ..
[DBeaver] localhost에서 MariaDB 데이터베이스 생성하기
·
개발지식/DB
개인 프로젝트나 테스트를 하다 보면로컬 환경에 DB를 하나 만들어야 할 때가 있다.평소에는 이미 만들어진 DB만 접속해서 사용하다 보니막상 로컬에 하나 만들려고 하니까 순간 기억이 안 났다. 그래서 DBeaver에서 localhost로 접속해서MariaDB 데이터베이스를 생성하는 방법을 정리해봤다. ※ DBeaver가 DB 자체를 설치해주는 것은 아니고MariaDB가 로컬 PC에 설치되어 있고 실행 중이라는 기준으로 진행한다.1. DBeaver에서 MariaDB 연결하기DBeaver를 실행하고 상단 메뉴에서데이터베이스 → 새 데이터베이스 연결을 선택한다.또는 좌측 상단의 새 연결 버튼을 눌러도 된다.DB 목록이 나오면 MariaDB를 선택한다.나는 MariaDB 기준으로 진행했다. 2. localhost..
[MariaDB] Windows에 MariaDB Server 설치하기
·
개발지식/DB
개인 프로젝트에서 사용할 로컬 DB가 필요해서MariaDB를 설치해보기로 했다.설치 자체는 어렵지 않은데중간에 root 비밀번호, Port, Windows Service 같은 몇 가지 설정이 나온다.나중에 로컬 DB 연결할 때 그대로 사용하는 설정들이라Windows 기준으로 MariaDB Server 설치 방법을 간단하게 정리해봤다.1. MariaDB Community Server 다운로드먼저 MariaDB 공식 홈페이지에서MariaDB Community Server를 다운로드한다.Windows 환경이기 때문에 Windows용 설치 파일을 선택하면 된다.설치 파일은 .msi 형식으로 되어 있어서일반 프로그램 설치하듯이 진행할 수 있다.버전은 계속 업데이트되기 때문에특별한 이유가 없다면 현재 제공되는 안정..
웹 개발자의 앱 개발 도전 - 3. Android Emulator Setting
·
앱개발
Android Emulator Setting Expo Go로 실행하면 코드 수정한 화면을 바로바로 볼 수 있는데 Windows에서는 iOS 에뮬레이터를 못 쓰니까 Android 에뮬레이터를 쓰기로 했다. 결국 Android Studio 설치둘 다 되는 iOS 보면 진짜 맥 사고 싶다… 어플 개발해서 돈 모아서 사보자. 꿈은 크게 필승 코리아 Android Studio 설치일단은 당연하게도 Expo Docs 개발자스럽게 확인부터 Expo DocumentationBuild one JavaScript/TypeScript project that runs natively on all your users' devices.docs.expo.devSet up your environment에 들어가면 환경 설정 방법이 ..
웹 개발자의 앱 개발 도전 - 2. Expo는 신이야
·
앱개발
Expo로 React Native 시작하기React Native 시작을 어떻게 할까 고민하다가…다들 Expo 쓰면 편하다는 말이 많길래 나도 결국 Expo 공식 문서를 찾아가봤다.개발자는 뭐든 문서부터 보는 게 국룰이라고 생각한다. 괜히 AI한테만 의존하는거 같아서... Expo 공식 문서https://docs.expo.dev/ Expo DocumentationBuild one JavaScript/TypeScript project that runs natively on all your users' devices.docs.expo.dev프로젝트를 생성하려면 일단 Node.js가 필요하군....Node.js 버전 확인그래서 cmd 키고 잽싸게 노드버전을 확인해봤는데노드 버전 실화냐.... 마음이 웅장해진다와..
웹 개발자의 앱 개발 도전 - 1. 앱 개발 뭘로 할까?
·
앱개발
나는 웹 개발자로 이제 2년째 일하면서, 요즘 “앞으로 뭘 더 해볼까?” 고민을 많이 했다.자격증은 딱히 끌리지 않고… 그렇다고 아무것도 안 하자니 자기 개발은 해야겠고....하다 보니 “앱 개발”이 눈에 들어왔다. 왜 앱 개발이냐?앱이 뭔가 웹보다 있어 보이…는 농담이고, 회사에서 앱 프로젝트를 많이 진행하는데,나는 늘 API만 만들다가 옆에서 앱 개발하는 거 보면 은근 재밌어 보였다.그래서 나도 한 번 도전해보기로 했다.물론 웹으로 만들어서 앱처럼 감싸는 방법도 있겠지만,푸시 알림 같은 앱스러운 기능도 직접 써보고 싶었고,또 예전에 영상 전공을 해서 그런지, UI/모션 쪽 감성을 좀 만져보고 싶었다. 그래서 뭘로 할까? Flutter vs React Native솔직히 iOS/안드로이드 네이..