개발은 재밌어야 한다
article thumbnail
[디자인패턴] 어댑터 패턴(AdapterPattern)

AdapterPattern 어댑터를 생각해보면 흔히 사용하는 휴대폰 충전기의 어댑터를 생각해 볼 수 있다. 어댑터는 220V라는 콘센트에 서로 다른 종류의 충전기가 휴대폰과 전원 콘센트 사이에서 둘을 연결해주는 변환기의 역할을 수행해 준다. 데이터 베이스에서 다양한 데이터베이스 시스템을 공통의 인터페이스인 ODBC 또는 JDBC를 이용해서 조작할 수 있는데, ODBC/JDBC 가 어댑터 패턴을 사용해서 다양한 데이터베이스 시스템을 단일한 인터페이스로 조작할 수 있게 해주기 때문이다. 어댑터 패턴이 적용되지 않은 코드 ClientWithNoAdapter 클래스에서 main() 메서드를 보면 sa1 참조 변수와 sb1 참조 변수를 통해 호출하는 각 메서드가 비슷한 일을 하지만 메서드명이 다르다.(sa1은 r..

article thumbnail
지방대 비전공자에서 대기업 서비스 회사 개발자까지 - 2
null채우기 2022. 5. 23. 01:15

이전에 임시 저장한 게 날아가서 그냥 처음부터 다시 작성을...당시 취준을 했던 때로 돌아가서 생각을 해보면 이력서에 지원하는 회사들에서는 나름에 기준이 있었습니다. 크게 나누어서 SW 회사들은 SI, SM, 솔루션, 서비스 회사들로 나누어져 있다고 생각합니다. 이 중에서 제가 회사를 선택하는 기준이었습니다. 서울에 있는 소프트웨어 회사인가 안정적으로 월급을 지급할 수 있는 회사인가 (재무가 튼튼한 회사) 성장을 하고 있는 회사인가 그리고 마지막으로 기왕이면 자사 서비스를 가지고 있는 서비스 회사를 가고 싶다는 생각을 가지고 있었습니다. 보통의 취준생들은 어느 정도의 불안과 초조함을 가지고 있다고는 생각하지만, 돌이켜 생각해보면 2020년 4월에 수료할 당시에는 코로나로 인하여 저의 급한 성격에 불을 질..

article thumbnail
지방대 비전공자에서 대기업 서비스 회사 개발자까지 - 1
null채우기 2022. 5. 3. 23:02

안녕하세요 이번에 이직을 하게 되어서 제가 이제까지 개발자가 되기 위한 여정들을 한번 포스팅해볼까 합니다. 다른 이직하는 포스팅들도 읽고 재미있기도 했고 다른 분들의 이야기를 통해서 그분들의 경험을 간접적으로나마 체험할 수 있는 블로그 게시글들을 많이 접했기에 저도 저의 이야기를 한번 해보려고 합니다. 1. 23살 전역을 하다 때는 바야흐로 2017년 전역을 하고 9월 7일 전역을 하자마자 2학년 2학기로 칼 복학을 하였습니다. 복학을 하고 본과인 생명과학과에서 열심히 공부를 했지만 흥미를 찾지 못했었습니다. 전역하고 나서는 공부에 모든 것을 올인하겠다며 열심히 했지만 흥미를 못 찾았기에 열심히 노력해도 성적이 그만큼 따라주지를 않았습니다... 2. 컴공 복수 전공하다 대학교 입학할 때 원래는 컴퓨터공학..

article thumbnail
Docker로 nginx 사용해서 Vue 빌드파일 올리기
docker 2022. 4. 20. 17:02

엔진엑스(Nginx)는 Igor Sysoev라는 러시아 개발자가 동시접속 처리에 특화된 웹 서버 프로그램이다. Apache보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화되어 있습니다. 이런 엔진엑스는 정적 파일을 처리하는 HTTP 서버로서의 역할 을 할 수 있는데 Vue로 만들어진 프로젝트 파일 빌드해서 엔진엑스로 올려보는 작업을 해보겠습니다. 해당 작업은 윈도우로 하며 도커를 사용하기 때문에 도커 데스크탑을 설치해줘야 합니다. https://dreamcoding.tistory.com/72 [도커 docker] docker 설치 및 사용하기 안녕하세요 이번에는 도커 설치법 및 사용에 대한 포스팅을 해볼까 합니다. https://dreamcoding.tistory.com/61 버추얼..

article thumbnail
MySQL에서 특정 문자로 문자열 SPLIT 하기 - SUBSTRING_INDEX
RDBMS 2022. 4. 19. 12:08

MYSQL에서는 특정 문자를 기준으로 SPLIT해서 해당 값을 여러 열로 나누어야 할 일이 발생했을때 사용하는 방법을 작성해보겠습니다. 위와같이 THRESHOLD라는 컬럼이 파이프라인( | )으로 이루어져 있다고 했을때 해당 " | "를 기준으로 컬럼을 나누고 싶다고 가정했을때 SUBSTRING_INDEX(문자열, 구분자, 구분자의 index) SUBSTRING_INDEX함수를 통해서 해당 값을 나눌 수 있습니다. 문자열을 시작 or 끝부터 index번째 구분자까지 자르는 것입니다. index가 양수일 경우 문자열의 첫부분부터, index가 음수일 경우 문자열의 뒷부분부터 자르게됩니다. THRESHOLD의 문자열 값을 구분자 " | "에 따라 나누어 출력한다고 했을때 THRESHOLD 값 예) 1000|..

article thumbnail
ElasticSearch에서 여러 필드 GroupBy 하는법
NoSQL/ElasticSearch 2022. 4. 7. 17:43

만약 엘라스틱 서치에서 RDBMS에서 처럼 GroupBy로 묶으려면 해당 필드를 subAggregation형태로 쿼리DSL을 만들어 주면 된다. SQL SELECT * FROM example WHERE wantField = 3 GROUP BY field1, field2, field3 Query DSL GET example*/_search? { "size": 0, "query": { "bool": { "filter": [ { "term": { "wantField": { "value": 3, "boost": 1 } } } ], "adjust_pure_negative": true, "boost": 1 } }, "aggs": { "agg1": { "terms": { "field": "field1" }, "agg..

article thumbnail
SQL문을 엘라스틱서치 query dsl로 변환 사이트
NoSQL/ElasticSearch 2022. 3. 30. 15:46

https://sqltoelasticsearch.azurewebsites.net/ SQL to Elastic Search Converter SQL to ElasticSearch Converter Place SQL in the text area below, then click Convert © 2018-2021 - Robert Gelb sqltoelasticsearch.azurewebsites.net 이렇게 쿼리를 넣고 Convert를 돌리면 이렇게 엘라스틱서치에서 사용할 수 있는 Query DSL로 변환해서 만들어 준다. 하지만 group by나 sort부분에서 적용안되는 부분들이 있으니 단순한 변환정도로 사용해야할 것 같다

article thumbnail
[자바 Java] Java.sql.Time을 milliseond로 변환
JAVA 2022. 3. 11. 10:33

Java.sql.Time을 millisecond로 변환하는 방법 Time 객체 생성은 @Deprecated표시가 되어있지만 예시 데이터를 생성하기 위해 사용했다. Time timeValue = new Time(0, 0, 12); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss"); simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); Date convertdate = simpleDateFormat.parse(timeValue.toString()); System.out.println(convertdate.getTime()); 원하는 Java.sql.Time의 12초를 milliseco..

article thumbnail
[도커 docker] docker에서 실행중인 MariaDB 설정 파일 수정하기
docker 2022. 3. 7. 15:33

Docker로 실행중인 MariaDB의 설정파일인 my.cny파일을 수정하는 방법에 대해서 포스팅하려고 합니다. 우선 docker ps나 docker ps -a로 도커로 실행중인 컨테이너를 확인합니다. 원하는 컨테이너의 이름을 기억하고 해당 컨테이너에 진입합니다. docker exec -i -t [컨테이너이름] bash cd /etc/mysql로 설정파일인 my.cnf파일이 있는곳으로 이동해줍니다. cd /etc/mysql 다음에 vi my.cnf를 통해 파일을 수정합니다. 이처럼 command not found 가 뜬다면 vim을 설치해야 합니다. apt-get update로 패키지를 업데이트후 apt-get install vim을 해주세요. apt-get update apt-get install vi..

article thumbnail
[자바 JAVA] BigInteger&BigDecimal 클래스 개념 (long보다 큰 수 표현)
JAVA 2022. 3. 7. 10:17

일전에 백준에서 큰수에 대한 문제를 풀었을때 만났었던 클래스인데 이번에 또 만나게 되어 BigDecimal과 BigInteger에 대한 설명을 포스팅하려고 합니다. BigInteger를 사용한 백준 문제 (10757번 큰 수 A+B) https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net MySQL에서 Data에 대한 매핑을 보다가 BIGINT 즉 큰수에 대한 값을 자바에서 convert해서 가져오는 과정에서 사용되는 클래스로 java.math.BigDecimal이 사용되는 것을 확인 할 수 있습니다. 그럼 BigDecimal과 BigInteger가 무엇인지에..

article thumbnail
[도커 docker] docker 설치 및 사용하기
docker 2022. 3. 6. 06:24

안녕하세요 이번에는 도커 설치법 및 사용에 대한 포스팅을 해볼까 합니다. https://dreamcoding.tistory.com/61 버추얼박스(VirtualBox) 설치 및 구동 (CentOS 8 버전) 1. 가상 머신(VM) 환경 구축하기 VM에는 버추얼박스(VirtualBox)와 VMware Workstation의 방식이 있는데 제가 사용하는 방법은 오라클(Oracle)의 버추얼박스를 통해서 리눅스 환경을 구축 하겠습니다. https://w dreamcoding.tistory.com 일전에 Virtual Box로 가상 머신을 통해서 리눅스를 사용하는 방법에 대해 포스팅을 한 적이 있는데요 리눅스를 사용하는 이유로는 뭐 다양한 이유가 있겠지만 서버환경을 통해 원하는 서버를 구축하는데에 사용하는데 있..

article thumbnail
[MySQL] 컬럼 추가, 컬럼 삭제, 컬럼명 변경, 컬럼 타입 변경
RDBMS 2022. 3. 3. 10:34

자꾸 찾아보게 되어서 이번기회에 정리해서 포스팅 해보려고 합니다. 컬럼 추가1. 테이블에 컬럼 맨뒤에 추가ALTER TABLE [테이블명] ADD COLUMN [컬럼명] [자료형]EX)ALTER TABLE board ADD COLUMN board_type varchar(100) NOT NULL; 2. 테이블에 컬럼 맨앞에 추가ALTER TABLE [테이블명] ADD COLUMN [새컬럼명] [자료형] FIRST EX)ALTER TABLE employee ADD COLUMN working_day varchar(200) NOT NULL FIRST 3. 테이블에 지정 컬럼 뒤에 추가ALTER TABLE [테이블명] ADD COLUMN [새컬럼명] 자료형 AFTER [앞컬럼명]EX)ALTER TABLE empl..