Programing Language 48

Programing Language/Python
디스코드 훅을 이용하여 채널에 메세지 보내기

디스코드 웹훅디스코드에 내장되어 있는 웹훅 기능은 자동 메세지들과 데이터를 서버에 있는 텍스트 채널로 쉽게 보내주는 역활을 한다. 쉽게 말하면 해당 API을 이용하여 HTTP POST 요청을 보내면, 해당 내용을 디스코드 텍스트 채널에서 확인 할 수 있다.   웹훅 URL 만들기 해당 과정을 진행하면 해당 텍스트 채널에 대한 웹훅 URL을 얻을 수 있다.      요청 보내기 python으로 requests 패키지를 이용하면 쉽게 디스코드로 메세지를 보낼 수 있다. import requestsheaders = { "Content-Type": "application/json"}json_data = { "content": "안녕하세요?"}requests.post("웹후크 URL", headers=..

Programing Language/Python
pipenv을 사용한 가상환경, 패키지 관리하기

Pipenvpipen는 파이썬에서 패키지를 프로젝트 단위로 관리할 수 있도록 하는 고급 패키지 관리 도구이다. pip 위에서 동작하지만, 프로젝트 별로 격리된 가상 환경을 제공한다.  🖥️ Terminalpip install pipenv   버전에 따른 가상 환경 구성 및 설치버전에 따른 가상 환경을 구성하기 위해서는 다음과 같은 옵션값과 함께 명령어를 실행한다. pipenv --python 3.11 # 버전에 따라 변경 가능 구성된 가상 환경을 활성화하기 위해서는 다음 명령어를 실행한다. pipenv shell 가상환경 내에 패키지를 설치하기 위해서는 다음 명령어를 실행한다. pipenv install django # 설치pipenv uninstall django # 삭제 pipfile, pipfil..

Programing Language/Java
Lambda Expression

Lambda Expression람다식이란 함수를 하나의 식으로 표현한 것이다.  함수를 람다식으로 표현하면 메소드의 이름이 필요없기 때문에, 익명 함수의 한 종류라고 볼 수 있다.  // 람다 방식(매개변수, ... ) -> { 실행문 ... }// 예시() -> "Hello World!"; 해당 람다식을 통해 다음과 같은 장점을 얻을 수 있다. 불필요한 코드를 줄이고, 가독성을 높힘함수를 만드는 과정없이 한번에 처리가능하여 생산성 증대병렬 프로그래밍에 용이  Java에서 제공하는 함수형 인터페이스Java에서는 자주 사용될 것 같은 함수형 인터페이스가 이미 정의되어 있다.   Supplier 매개변수 없이 반환값만 갖는 함수형 인터페이스이다. get() 함수를 이용하여 함수를 실행한다.// 정의@Func..

Programing Language/Java
Enum

최근 프로젝트를 진행하다가 "이건 Enum으로 빼서 처리하면 좋을 것 같은데요?"라는 조언을 들었다. Enum을 자바 공부하면서 들어보긴 했는데 어떠한 점이 좋은지, 어떻게 쓰면 되는지에 대해서는 명확하게 잘 알지는 못하기에 오늘은 Java의 Enum에 대해서 알아보고자 한다.   EnumEnum은 Enumeration의 약자로 열거, 목록의 뜻을 가지고 있으며 "상수의 데이터 집합"이라고 생각하면 된다. 일반적으로 상수를 정의하는 방법은 여러 가지가 존재하는데 이는 다음과 같다.  final 상수변수를 final 제어자를 이용해 변수를 상수화 한다. 동시에 static을 사용하여 메모리에 한 번만 할당 되게 설정한다는 장점을 가지지만 접근 제어자들 때문에 가독성이 좋지 못하다는 단점이 있다. priva..

Programing Language/Java
Optional

오늘은 Optional에 대해서 알아보자 OptionalJava8에서 나온 문법으로 NullPointerException(NPE)을 방지하도록 도와주는 클래스이다. Optional 을 이용하여 사용할 수 있으며 null이 올 수 있는 값을 감싸는 Wrapper 클래스로 나타낸다. 아래 코드와 같이 값을 저장하기 때문에, 참조하더라도 NPE가 발생하지 않도록 도와준다.public final class Optional { // If non-null, the value; if null, indicates no value is present private final T value; ...}  사용방법Optional.empty() : 값이 null인 경우Optional은 Wrapper 클래스이기 때문에..

Programing Language/Sql
SQL 숫자 처리

이번에는 SQL의 숫자 처리 기능에 대해 알아보고자 한다.   반올림, 올림, 버림 (ROUND, CEILING, FLOOR)ROUND : 반올림을 할 때 사용한다. ROUND(NUMBER, 소수점으로 나타낼 숫자 영역)-- 예ROUND(234.123, 2) -> 234.12 CEILING : 올림을 할 때 사용한다.CEILING(87.8) -> 88 FLOOR : 버림을 할 때 사용한다.FLOOR(87.8) -> 87 주의점 : CEILING, FLOOR 함수는 항상 정수를 반환한다는 점을 잊지 말자      최대, 최소 (MAX, MIN)MAX : 해당 칼럼에서 최대 값을 가져올 때 사용한다. MAX(COLUMN) MIN : 해당 칼럼에서 최소 값을 가져올 때 사용한다. MIN(COLUMN)

Programing Language/Sql
SQL 날짜 처리

이번에는 SQL을 통해 날짜를 처리하는 방식에 대해서 다뤄보고자 한다.  날짜 출력 (DATE_FORMAT)SQL에서는 날짜를 다루는 포맷 함수를 제공한다. select date(date) date_type, datefrom payments 해당 데이터 포맷을 다루기 위해서는 아래 조건을 사용하면 된다.년 : Y (4자리), y(년도 끝 2자리)월 : M, m일 : d, e요일 : wselect date(date) date_type, date_format(date(date), '%Y') "년", date_format(date(date), '%m') "월", date_format(date(date), '%d') "일", date_format(date(d..

Programing Language/Java
Stream

오늘은 Java Stream에 대해서 알아보고자 한다.   Stream스트림(Stream)이란 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소로 정의 할 수 있다. 데이터 처리 연산 : 스트림은 함수형 프로그래밍 언어에서 일반적으로 지원하는 연산(filter, map, reduce, find, match, sort...) 등으로 데이터를 조작할 수 있으며, 스트림 연산을 데이터를 순차적으로 또는 병렬적으로 실행 할 수 있다. 소스 : 스트림은 컬렉션, 배열, I/O 자원 등의 데이터 제공 소스로부터 데이터를 소비한다. 정렬된 컬렉션으로 스트림을 생성하면 정렬이 그대로 유지된다. 연속된 요소 : 컬렉션과 마찬가지로 스트림은 특정 요소 형식으로 이루어진 연속된 값 집합의 인터페이스를 제공한다. 컬..

Programing Language/Sql
SQL 정리

SELECT, FROM어떤 테이블에서 데이터를 가져올 때 사용한다. select * from 테이블select 컬럼 from 테이블select 컬럼1, 컬럼2 from 테이블 때로는 칼럼을 뽑았을 때, 사용하는 명칭과 다를 때가 있다. 이때는 칼럼 명에 별명을 지정하여 변경할 수 있는데 2가지 방법이 존재한다. 별명을 지을 때 주의점은 특수문자나 한글이 별명 안에 있을 경우 큰 따옴표 안에 적어주어야 한다. 칼럼 1 as 별명 1칼럼 2 별명 2select order_id as ord_no, restaurant_name "식당 이름" from food_orders     WHERE데이터 중에 특정 조건을 필터링할 때 사용한다. 문자를 사용할 때에는 작은따옴표를 사용한다. select * from cust..