JaeWon's Devlog
반응형
article thumbnail
[SpringBoot] 스프링부트 + 슬랙(slack bot) 연동하기
BackEnd/Spring 2022. 7. 10. 15:55

예전에는 서비스를 운영하다 보면 직원들에게 알림(장애, 배치, 반영 등)을 알려주기 위해 메시지를 보내거나 하였지만, 최근에는 대부분 슬랙(Slack)이란 메신저를 사용한다. 대부분의 회사가 초기에 구축을 해두어, 업무시에는 간단한 양식을 추가하여 사용하고 있는데, 실제 구축하여 연동을 해보고자 하였다. 이번 글에서는 백엔드를 스프링부트로 하여 간단하게 슬랙을 연동해보도록 하겠다. 1. Slack Bot 생성하기 - 기본적으로 Slack에는 가입되어 있다고 가정하고 진행합니다. - 아래 사이트를 통해서 메시지를 보낼 Slack Bot을 생성합니다. - https://api.slack.com/ Slack은 미래의 업무가 이루어지는 곳입니다 Slack은 여러분의 팀과 소통할 새로운 방법입니다. 이메일보다 빠..

article thumbnail
[Java] Lombok 정리
BackEnd/Java 2022. 7. 6. 16:53

Java 언어를 사용해 개발을 하다 보면 DTO, VO 개발을 하다 보면 Lombok(롬복) 이란 라이브러리를 사용하여 개발을 하곤 한다.(물론 아직까지도 안 쓰는 회사도 있기도 하겠지만....) 이번 글에서는 자주 사용하는 Lombok 이란 라이브러리에 대해서 정리해보고자 한다. 1. Lombok 이란? - Java 의 라이브러리로 반복되는 메소드를 Annotation(어노테이션) 기반으로 코드를 자동으로 완성해주는 라이브러리이다. - Lombok 을 이용하면 Getter, Setter, ToString 등과 같은 다양한 코드를 자동 완성시킬 수 있다. - Lombok 을 이용해서 작성한 코드는 컴파일 과정에서 Annotation 을 이용해서 코드를 생성하고 이런 결과물이 .class 에 담기게 된다...

article thumbnail
[Spring] 문자열 유효성 검사(isEmpty(),hasText())
BackEnd/Spring 2022. 7. 3. 14:38

개발을 하던 도중에 종종 문자열 유효성 검증(ex: Null 검증)이 필요할 때가 있다. 해당 상황에서 사용하는 메소드를 살펴보고자 한다. 1. String.isEmpty() - Java에서 제공하는 String 클래스의 isEmpty()메소드가 있다. - 해당 메소드로 문자열 유효성 검사를 진행이 가능하다. - 그러나, 해당 메소드로는 Null 체크가 안되어, 로직에서 String이 null 일 경우에는 NullPointerException(NPE)이 발생한다. - 아래 이미지에서와 같이 length로 길이는 체크하지만 null은 체크하지 않는다. 2. (deprecated)StringUtils.isEmpty() - 스프링에서 제공하는 Util 클래스 중 StringUtils 클래스에도 isEmpty(..

article thumbnail
[MySQL] on duplicate key update(Insert 시 값 존재하면 Update)
BackEnd/DataBase 2022. 7. 1. 16:06

테이블을 생성 시, 중복 저장을 막기 위해 다양한 컬럼에 Unique Key 를 등록한다.(Primary Key와는 다름) 이때, 데이터를 Insert 하는 경우, Unique Key 가 존재하는 값에 대해 실행하면 에러가 발생한다. 이러한 경우에 해당 row(데이터)를 Delete 후 다시 Insert 하는 방법도 있지만, 삭제에 대한 위험요소도 있다. 이때, on duplicate key update 를 사용하여 Unique Key 값이 있는 경우에 Insert 가 아닌 update를 해주는 방법이 있다. 1. Table(테이블) 생성 - 간단하게 테이블을 생성한다. //기존 테이블 삭제 DROP TABLE TEST_MEMBER; //테이블 생성 CREATE TABLE TEST_MEMBER ( mem..

article thumbnail
[Java] String, StringBuffer, StringBuilder 차이 및 장단점
BackEnd/Java 2022. 6. 26. 13:48

Java 에서 문자열을 다루는 대표적인 클래스로 String, StringBuffer, StringBuilder 가 있습니다. 항상 개발할때 대부분 String으로 사용하였는데, 작은 시스템에서는 크게 이슈가 발생하지는 않습니다. 그러나 큰 서비스와 시스템에서는 연산횟수가 많아지거나 멀티 쓰레드, Race Condition 등의 상황이 발생하면서 무작정 String으로만 사용한다면 성능에 큰 문제가 발생합니다. 이번 글에서는 각 특징을 이해하고, 상황에 맞는 적절한 클래스가 무엇인지 정리해보도록 하겠습니다. 1. String vs StringBuffer/StringBuilder - String 객체는 한번 값이 할당되면 그 공간은 변하지 않으며, 이것을 불변(Immutable)성 이라 합니다. - Str..

article thumbnail
[DB] Join(조인) 정리하기
BackEnd/DataBase 2022. 5. 7. 16:32

1. Join(조인) 이란? - 한 데이터베이스 내의 여러 테이블의 레코드를 조합하여 하나의 열로 표현한 것 - 즉, 둘 이상의 테이블을 연결해서 데이터를 검색하는 방법 - 테이블로서 저장되거나, 그 자체로 이용할 수 있는 결과 셋을 만들어 낸다. - 아래 그림은 조인을 쉽게 이해하기 위한 그림이다. - Join의 종류 INNER JOIN : 내부조인(교집합) LEFT/RIGHT JOIN : 부분집합 OUTER JOIN : 외부조인(합집합) 2. DB에서의 조인 필요성 - 관계형 데이터베이스의 구조적 특징으로 정규화를 수행하면 의미 있는 데이터의 집합으로 테이블이 구성되고, 각 테이블끼리는 관계(Relationship)를 가진다. - 이와 같은 특징으로 관계형 데이터베이스는 저장 공간의 효율성과 확장성이..

article thumbnail
[DB] Transaction(트랜잭션) 정리하기
BackEnd/DataBase 2022. 5. 7. 15:21

1. Transaction(트랜잭션)이란? - 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 - 데이터베이스의 작업 중 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미 - 예를들어, 게시판으로 생각해자면 다음과 같다. 게시판 목록을 확인한다. 사용자는 새로운 게시글을 작성하고, 저장 버튼을 누른다. 게시판 목록에서 작성자가 작성한 글이 포함된 목록을 확인한다. - 이러한 과정들이 모두 합쳐서 "게시판 작성" 이라는 하나의 작업 단위를 구성한다. 2. 트랜잭션의 정의 - 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위 - 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위 - 하나의 트랜잭..

article thumbnail
[Heroku] SpringBoot + MySQL(heroku) 배포하기 - (2)Heroku 배포
BackEnd 2022. 4. 23. 16:10

이전 글에서 Heroku 에 배포하기 위한 기본적인 세팅을 진행하였다. 이번 글에서는 Heroku 에 SpringBoot 어플리케이션을 배포하고 확인을 해보려고 한다. (작성자의 샘플 : https://test-jpa-api.herokuapp.com/) -> 2022년 11월 28일 부로 무료 종료 1. Heroku Git 설정하기 - 추후 Heroku App에서의 원활한 로그 확인을 위해 우리나라 시간으로 설정한다. heroku config:add TZ="Asia/Seoul"--app heroku-app-name --> (Heroku 생성시 작성한 앱이름) - Heroku 페이지에 기본적인 Git 설정에 대해 작성되어 있고, 따라서 진행한다. - cmd(terminal)에서 heroku login을 한..

article thumbnail
[Heroku] SpringBoot + MySQL(heroku) 배포하기 - (1)Heroku 설정
BackEnd 2022. 4. 23. 14:57

무료로 작고 간단한 서버를 무료로 제공해주는 Heroku 라는 것이 있다. 이곳에 어플리케이션을 배포해보고 몇몇 테스트 시에 사용해보고자 한다. 1. Heroku(헤로쿠)란? - Java, Node.js, Python 등 여러 언어를 지원하는 클라우드 PaaS(Platform as a Service) - 간단하게 무료로 호스팅 할 수 있도록 도와주는 서비스 - AWS 처럼 비용을 지불하면 원활한 서비스 이용 가능 - 최대 5개의 앱을 무료로 사용 가능하며, 한달 550시간까지 무료로 사용 가능 - 신용카드 정보만 추가로 등록하면 한달 최대 1000시간까지 무료로 사용 가능 (* Heroku App의 DB를 사용하기 위해서는 신용카드 등록이 필요) - 무료인 이유는 해당 도메인으로 일정 시간 동안 요청이 ..

article thumbnail
[DB] Oracle vs MySQL vs MSSQL 비교
BackEnd/DataBase 2022. 4. 20. 16:09

최근에 면접을 보게 되면서 아래와 같은 질문을 받게 되었다. "업무를 진행하면서 여러 DB를 사용해보셨을 텐데, Oracle, MySQL, MSSQL의 차이점을 말씀해주실 수 있으실까요?" 해당 질문을 받고 머리가 하얘졌다. 간단하게는 비용적으로 차이가 있고, MSSQL은 보통 윈도우에서 사용된다는 정도만 생각하고 있었다. 이번 글에서는 자세히는 아니고, 내가 생각하는 위 DB 들을 비교하여 정리해보고자 한다. 1. Oracle, MySQL, MSSQL Oracle - Oracle DB는 미국 오라클(Oracle)사의 관계형 데이터베이스 관리 시스템(RDBMS)의 이름이다. - 현재 유닉스/리눅스 환경에서 가장 널리 사용되는 RDBMS이다. - 검색이나 업데이트용 언어로는 국제표준화기구의 표준 구조화 조..

반응형