본문 바로가기

전체 글

(75)
[ mysql ] join using 과 on 차이(각각 어디에 적절한가?) 쿼리를 짤 때 join 이 필요할 경우에는 항상 on 을 사용했는데, 최근에 using 문법을 알게 되었다. using 문법은 어떨 때 사용하는 것이 적절할까? 아래와 같이 테이블 2개가 있다고 가정해보자. 두 테이블을 INNER JOIN 해서 각 테이블의 정보를 조회하는 쿼리와 결과는 다음과 같다. -- on 사용 SELECT u.*, o.* FROM tb_user u INNER JOIN tb_office o ON u.user_no = o.user_no; -- using 사용 SELECT u.*, o.* FROM tb_user u INNER JOIN tb_office o USING (user_no); ON 절에서 각 테이블의 키를 연결하여 조회할 수도 있고, USING 뒤에 두 테이블을 연결하는 키를 ..
[ mysql ] 예시로 보는 인덱스 (Index) 개념 완전 이해하기 인덱스(Index) 란? 배경 DB 작업을 하면서 가장 많으 접하게 되는 인덱스. 하지만 생각보다 정확한 개념을 이해하고 있지 못한 사람들이 있다. 예시를 통해서 쉽게 인덱스를 되짚어보자. 개념 직관적으로 이해할 수 있도록 책에 비유해보겠다. 예를 들어 학생 정보가 천만 건이 기록되어 있는 책이 있다고 가정해보자. 그 안에서 '이말년' 학생을 검색해야 한다면 어떤 방법으로 찾을 수 있을까? 첫 번째 행부터 마지막 행까지 하나씩 살펴보는 방법이 있다. 그러나 이러한 방식은 시간이 오래걸릴 것이다. 책의 두께가 두꺼워질수록 검색할 분량이 늘어날수록 검색 속도가 급격히 느려지므로 매우 비효율적이다. 그렇다면 책이 특정 기준으로 정렬이 되어있다면 어떨까? 흔히 우리가 알고있는 책의 목차처럼 말이다. 예를 들어 ..
[ Linux ] 리눅스마스터 2급 2차 후기(하루 벼락치기로 땀) 🙄 주절주절 리눅스를 많이 다뤄본 건 아니지만, 리눅스에 대한 자신감이 있었다. 그래서 리눅스 마스터 2급 자격증에 도전해보기로 했다. 일단 무조건 시험날짜 잡고 결제 때려! 찾아보니 1차는 시험장을 가는 게 아니라, pc로 시험을 보는 것이었다. 인터넷 찾으면 족보 있어서 ctrl + f 로 찾으면서 시험보면 된다. 개꿀😙 족보는 다 비슷해서 아무 블로그에 올라와 있는 거 2개 정도 받아서 참고하면 된다. 1차는 결과가 바로 나온다. 그러고 2차 시험까지 기간이 꽤 있다. 나는... 최대한 미룰 때까지 미루다가 하루 벼락치기해서 땄다. 훗 인터넷에 찾아보면 비전공자는 한 달이고 전공자는 일주일이다? 이런 말들이 많은데 공부 방법만 맞으면 전공자 비전공자 상관없이 최소 1일 최대 3일이면 가능. 블로그 ..
[ CentOS ] 초간단 CentOS 에서 Spring Boot Jar 배포하기 (gradle) 다음은 jar를 배포하는 방법입니다. jdk가 설치된 상태라고 가정합니다. 서버: centos7 개발툴: intellij 프로젝트: spring boot gradle 만약 jdk가 설치된 상태가 아니라면? 아래 클릭! [ CentOS ] 초간단 CentOS7 java 설치(환경변수, 방화벽 설정 포함) 꿀팁으로 virtual box 이용하시는 분들은 putty로 접속해서 하시면 복붙이 가능합니다! (복사하고 putty에서 마우스 우클릭하면 붙여넣기가 됩니다.) | jdk 설치 1) wget 설치 jdk를 웹사이트에 im-codding.tistory.com 먼저 jar 파일을 생성합니다. intellij 툴을 이용하면 손쉽게 만들 수 있습니다. bootJar 를 더블클릭 하시면 jar 을 생성하기 시작합니..
[ CentOS ] 초간단 CentOS7 java 설치(환경변수, 방화벽 설정 포함) 꿀팁으로 virtual box 이용하시는 분들은 putty로 접속해서 하시면 복붙이 가능합니다! (복사하고 putty에서 마우스 우클릭하면 붙여넣기가 됩니다.) | jdk 설치 1) wget 설치 jdk를 웹사이트에서 직접 다운로드 할 필요없이, wget을 이용하면 바로 다운로드가 가능하다. # yum install wget 2) 경로 이동 아래의 디렉터리에는 프로그램과 서브시스템을 위한 변경되지 않는 데이터 파일들을 둔다. # cd /usr/lib 3) jdk 다운로드 # wget https://download.java.net/java/GA/jdk16.0.2/d4a915d82b4c4fbb9bde534da945d746/7/GPL/openjdk-16.0.2_linux-x64_bin.tar.gz 4) jdk..
[ mysql ] 기본키(Primary Key) 와 유니크키(Unique Key) 차이 기본키(Primary Key) -값 중복을 허용하지 않는다. 식별키이다. -NULL값을 허용하지 않는다. -테이블에서 한 개만 생성 가능하다. 유니크키(Unique Key, Unique Index) -값 중복을 허용하지 않는다. -NULL값을 허용한다. -테이블에서 여러 개 생성 가능하다. "테이블은 오직 하나의 기본키(PK)를 가질 수 있다." 이는 여러 개의 기본키는 생성할 수 없다는 것을 의미한다. 아래의 ERD 테이블을 보자. 게시글을 읽은 사람들을 저장하기 위한 테이블이다. board_no 와 user_id 2개의 컬럼을 기본키로 설정할 수 있는 것을 확인할 수 있다. (예시를 위해 두 컬럼을 PK로 설정하였으나, 실제로는 UNIQUE INDEX로 설정하는 것을 권장한다.) 즉, 기본키는 단 하..
[ mysql ] select insert 문법 + duplicate key 기본키 중복 해결 안녕하세요 코띵입니다 :D 프로젝트를 진행하던 중에 select insert 문법을 써야돼서 사용하려는데, 기본키에 auto_increment 가 적용되어 있지 않아서 문제가 발생했습니다. 그래서 이를 해결하는 방법을 찾아서 포스팅해보려고 합니다. 하나의 테이블에서 select 하여 어떤 테이블로 insert 하고 싶을 경우에 아래와 같이 실행하면 됩니다. insert into 테이블A ( 컬럼명1, 컬럼명2, 컬럼명3 ) select 컬럼명4, 컬럼명5, 컬럼명6 from 테이블B ( 이 때, insert 와 select 사이의 컬럼 개수는 동일해야합니다. ) 저 구문을 실행할 때 키를 포함하고 있지 않으면 문제될 것은 없습니다. 하지만 컬럼값의 기본키를 반드시 넣어야하는 경우라면 기본키 값을 증가시키..
[ Java ] 객체지향 디자인 패턴 - 싱글톤 패턴(singleton pattern) 싱글톤 패턴은 프로세스 내에서 클래스 객체가 딱 하나만 만들어져야 할 때 사용하는 패턴이다. 사용자가 앱을 사용하는데 다크모드로 설정했을 경우, 다른 페이지로 이동하더라도 계속해서 다크모드로 유지되어 있어야 한다. 이 때, 설정하는 객체는 반드시 같은 것을 사용해야 한다. 그러기 위해서는 객체가 하나만 만들어지도록 해야한다. 간단하게 코드로 구현해보면 다음과 같다. | Settings.java public class Settings { private Settings() {} // default 객체 생성 불가능하도록 설정 private static Settings settings = null; // Point !! public static Settings getInstance() { if(settings..

반응형