분류 전체보기29 [MySQL][MariaDB] LPAD, RPAD 함수가 뭐야? 그룹 테이블에서 GROUP_ID가 PK에 해당한다. 이 GROUP_ID의 포맷이 GR00X (GR + 숫자3자리) 이렇게 정해져있다. 그룹 등록 시 다음 GROUP_ID를 쿼리해서 조회한 후 이를 그룹 정보와 같이 INSERT 한다. 다음 GRUOP_ID를 조회하는 쿼리를 한 번 보자. SELECT CONCAT('GR', LPAD(CAST(IFNULL(MAX(SUBSTR(GROUP_ID, 3)), 0) AS UNSIGNED) + 1, 3, 0)) group_idFROM GROUP_INFOWHERE GROUP_ID LIKE CONCAT( 'GR', '%') 쿼리를 괄호 제일 안쪽부터 보자. SUBSTR(GROUP_ID, 3) SUBSTR은 문자열 컬럼에서 원하는 길이로 문자열을 추출하는 함수이다... 2025. 7. 1. [React] Hook이 대체 뭐야? (useState, useEffect) 리액트 훅(Hook)이란?저번에 컴포넌트에 대해서 간단하게 설명했을 때 안한 얘기가 하나 있다.컴포넌트는 크게 두 가지 유형으로 나뉜다.클래스형 컴포넌트와 함수형 컴포넌트이다.클래스형 컴포넌트는 예전부터 사용하던 방식으로, 이름처럼 ‘클래스’ 라는 문법으로 만든다. 기능은 많지만 코드가 조금 길고 복잡하게 느껴질 수 있다.함수형 컴포넌트는 비교적 최근에 등장해 대세가 된 방식이다. ‘함수’ 형태로 훨씬 간결하고 직관적으로 컴포넌트를 만들 수 있다.이 함수 컴포넌트는 마치 ‘주문을 받으면 특정 모양의 레고 블록(UI)을 만들어서 내놓는 간단한 기계’ 와 같다.그런데 이 간단한 기계에는 몇 가지 치명적인 단점이 있다.기억력이 없다. (Stateless) : 버튼을 몇 번 눌렀는지, 사용자가 입력창에 무엇을 .. 2025. 6. 30. [React] 리액트 렌더링에 대해서 리액트의 렌더링이란?지난 컴포넌트에 대해서 설명할 때, 컴포넌트가 마치 레고 블록과 같다고 설명했다.그렇다면 렌더링은 이 레고 블록을 조립해서 눈에 보이는 ‘집’을 만드는 과정이라고 할 수 있다.컴퓨터가 리액트 컴포넌트라는 코드를 읽어서 우리가 실제로 보는 웹사이트 화면으로 그려주는 작업을 바로 ‘렌더링’이라고 부른다.리액트 렌더링 과정리액트로 만든 웹사이트를 하나의 거대한 ‘레고 전시장’ 이라고 상상해보자. 우리가 웹사이트 주소를 딱 치고 들어가는 순간은, 이 전시장에 처음 입장하는 것과 같다.index.html - “텅 비어있는 전시장”모든 웹사이트는 사실 HTML 이라는 뼈대로 이루어져 있다. 리액트 프로젝트 폴더를 열어보면 public 폴더 안에 index.html 이라는 파일이 있을거다.이 in.. 2025. 6. 27. [React] 리액트에서 컴포넌트(Component)란? 컴포넌트(Component)란?리액트 에서 컴포넌트를 말하자면 ‘레고 블럭’과 같다고 할 수 있다.우리가 레고로 어떠한 건물이나 오브젝트를 만들 때, 다양한 모양과 크기의 블록을 가지고 조립을 한다.리액트로 웹사이트나 애플리케이션을 만드는 것도 이와 비슷하다.여기서 각각의 레고 블록 역할을 하는 것이 바로 컴포넌트이다.좀 더 자세히 알아보자컴포넌트는 UI를 구성하는 독립적인 최소 단위이다.네이버 홈페이지를 생각해보자검색창 (SearchBar 컴포넌트)뉴스 헤드라인 (NewsHeadline 컴포넌트)쇼핑 추천 상품 (ShoppingItem 컴포넌트)로그인 폼 (LoginForm 컴포넌트)이 모든 것이 각각 하나의 컴포넌트가 될 수 있다.이렇게 쪼개진 컴포넌트들을 합쳐져서 하나의 페이지가 완성되는거다.컴포넌.. 2025. 6. 27. [PostgreSQL] TimeStamp, Date 날짜 형식 변환 기존 MySQL 을 쓸 때 DATE_FORMAT 함수를 통해서 날짜 데이터에 형식을 변환했다. 근데 PostgreSQL에서 쓸려니 DATE_FORMAT 함수가 없다 (엥??)그래서 찾아보니 TO_CHAR 함수를 통해 변환이 가능하다는 걸 알게됐다. 이에 대해서 간단히 정리해볼려고 한다. 함수 사용법 TO_CHAR(date_value, 'format_string')date_value : DATE, TIMESTAMP, TIME 등 날짜/시간 데이터‘format_string’ : 날짜 포맷자주 사용하는 포맷 코드YYYY4자리 연도2025YY2자리 연도25MM2자리 월05MON월 이름 (영문 약자)MAYMONTH월 이름 (영문 전체)MAYDD2자리 일08D요일 (숫자: 1=일요일)5DAY요일 이름THURSDAY.. 2025. 5. 8. [PostgreSQL] 테이블 생성하기 기존 MySQL/Maria DB를 사용하다 PostgreSQL를 쓸 일이 있어기본 문법부터 알아볼려고 한다. 거의 비슷한 것 같은데 약간약간 다른 것 같아서 이렇게 작성한다.테이블 생성우선 테이블 생성에 앞서 테이블 생성 시 컬럼의 제약 조건에 대해 간단히 알아보자.PRIMARY KEY PRIMARY KEY로 설정된 컬럼은 테이블 내의 데이터가 유일해야 하고 반드시 NOT NULL이어야 한다.NOT NULLNOT NULL로 설정된 컬럼은 NULL이 저장될 수 없다.UNIQUEUNIQUE로 설정된 컬럼은 테이블 내에서 유일해야 한다. (중복X)CHECK지정하는 조건에 맞는 값이 들어가야 한다.REFERENCES참조하는 테이블의 특정 컬럼에 값이 존재해야 한다.제약 조건 같은 경우, MySQL이랑 똑같다. .. 2025. 5. 7. [React] React-Quill Editor 적용하기 현재 리액트 공부를 하고 있다. 다음 프로젝트에서 아마 front 단을 리액트로 할 예정이다. 우선 처음에 할 때는 역시 CRUD 부터 하는 거다. 모든 웹에선 CRUD가 기본이다. 그래서 게시판 글 작성부터 할 예정이다. 사실 이전에 React 공부를 하다 말았었다. 그 때는 웹 공부 한창할 때라 이것저것 건들려봤다. (최근까지 바빠서 공부를 못했지만,,,) 이미 세팅은 다 되어있다. back단은 spring boot로 되어 있고, DB는 Maria DB를 쓰고 있다. JPA 대신 마이바티스를 쓰고 있다. JPA는 아직까지 어색하다. 아무튼 게시판 글 작성 목적으로 Editor를 찾다가 React-Quill 이란 걸 알게 됐다. 예전에 할 때 Tosat-UI에서 나온 Editor를 사용했다. 근.. 2025. 5. 2. [Spring][JAVA] Spring에서 주중(월~금)만 스케줄러 실행하기 현재 내가 진행하고 관련 프로젝트에서 매 1분 단위로 DB에 데이터 수집하고 있다. 하지만, 예외 사항으로 매 1분씩 데이터 수집이 안될 때가 있다. 즉, 결측이 발생할 수 있다. 이에 대해서 결측 이력을 별도로 DB에 저장하고 있다. 이 저장된 결측 이력을 매일 아침마다 이메일 템플릿을 통해 메일로 전달받는 서비스를 구현하고 운영 중이다. 원래 같은 경우 매일 아침 8시 15분에 실행되게 하였는데 회사에서 주말에 메일 받는 걸 꺼려해서(어차피 보지도 않을 거면서 참) 주중(월~금)에만 메일이 가도록 설정하고자 한다. 1. ✅ Spring cron 표현식 구조앞서 Spring cron 표현식에 대해 알아보자. Srping에서 사용하는 cron 표현식은 총 6개의 필드로 구성된다.초 분 시 일 월 요일 .. 2025. 4. 14. [네이버 Open API] 네이버 Search API를 통해 최신 뉴스 조회해보기 (Feat.Postman) 네이버 개발자 센터에서 제공하는 Search API를 통해 최신 뉴스 기사 타이틀을 가져오고자 한다. 이를 통해 기사 타이틀을 가져온 다음 OpenAI API를 활용해 해당 타이틀을 가지고 블로그 글을 작성해달라고 요청할 것이다. (앞으로의 계획) 우선 Postman을 통해 API 테스트를 해보자! 1. 네이버 개발자센터에서 API 키 발급받기네이버 Search API를 사용하려면 우선 네이버 개발자센터에서 클라이언트 아이디와 클라이언트 시크릿 키를 발급받아야 한다.접속 주소: 네이버 개발자센터Application 메뉴에서 새 앱을 등록하고, API 사용신청을 하면 키가 발급하면 된다. API 사용신청 시 사용 API에서 검색 을 선택해주면 된다.애플리케이션 등록 후 내 애플리케이션 에 들어가면 내가 만.. 2025. 4. 5. 이전 1 2 3 4 다음