무한루프/코딩, 개발 22

프로그래밍 네이밍 컨벤션 정리 – 파스칼 케이스, 카멜 케이스, 케밥 케이스 등

코드를 작성할 때 변수나 함수, 클래스의 이름을 어떻게 지어야 할지 고민해 본 적이 있을 것이다. 네이밍 컨벤션(Naming Convention)은 프로그래밍에서 일관된 변수명과 함수명을 정하는 규칙으로, 코드의 가독성을 높이고 협업을 원활하게 해준다. 잘 정리된 네이밍 규칙을 따르면 코드의 의미를 쉽게 파악할 수 있으며, 유지보수도 훨씬 수월해진다. 이번 글에서는 대표적인 네이밍 컨벤션인 파스칼 케이스(Pascal Case), 카멜 케이스(Camel Case), 스네이크 케이스(Snake Case), 케밥 케이스(Kebab Case)의 특징과 주로 사용되는 곳을 정리하고, 각 방식이 실제 코드에서 어떻게 활용되는지도 예제와 함께 알아보겠다.    1. 파스칼 케이스(Pascal Case)특징여러 단어로..

Vue / Spring에서 웹 HTML 데이터를 Word 파일로 다운로드 하기(3)

무료 방법( JSoup + OpenHtmlToPdf + Apache POI )을 활용하여 HTML을 그대로 유지하면서 Word로 변환하는 방식을 좀 더 알아보자.    전체 과정 요약Vue에서 HTML 데이터를 서버(Spring Boot)로 전송Spring Boot에서 HTML을 PDF로 변환PDF를 Word로 변환하여 다운로드  1. Vue에서 HTML 데이터를 서버로 전송 Vue에서 생성한 HTML 이 데이터를 스타일 포함해서 Word로 변환합니다. 테스트 데이터 Word로 다운로드     2. Spring Boot에서 HTML → Word 변환 API 구현① 필수 라이브러리 추가 (pom.xml) ..

Vue / Spring에서 웹 HTML 데이터를 Word 파일로 다운로드 하기(2)

앞서 Word파일로 다운로드 하는 방법을 정리해보았다.웹에서 보이는 그대로의 HTML을 Word로 변환하려면 HTML을 유지하면서 스타일과 레이아웃을 포함한 채 Word 문서로 저장해야 한다. 이를 위해 Apache POI만으로는 한계가 있으므로 JSoup + OpenHtmlToPdf 또는 Aspose.Words 같은 라이브러리를 활용하는 것이 좋다.  1. 해결 방법 HTML을 그대로 유지하면서 Word로 변환하는 방법 2가지JSoup + OpenHtmlToPdf + Apache POI 사용 (무료)Aspose.Words 사용 (유료, 강력한 기능) 2. JSoup + OpenHtmlToPdf + Apache POI 활용 (무료 방법) Vue에서 HTML 데이터를 서버로 전송Spring Boot에서 H..

Vue / Spring에서 웹 HTML 데이터를 Word 파일로 다운로드 하기(1)

1. 개요Vue에서 HTML 데이터를 수집하고 Spring 서버로 전송Spring에서 Apache POI를 사용하여 Word 문서 생성생성된 Word 파일을 클라이언트에서 다운로드 2. 구현 방법Vue에서 HTML 데이터 전송Vue에서 특정 HTML 데이터를 가져와서 API 요청을 통해 Spring 서버로 전송. Vue에서 생성한 HTML 이 데이터를 Word로 변환합니다. Word로 다운로드    Spring Boot에서 Word 파일 생성 APISpring Boot에서 Apache POI를 사용하여 HTML 데이터를 Word로 변환. pom.xml에 Apache POI 의존성 추가 org.apache.poi poi-oo..

HTTP와 HTTPS 차이점 HTTPS 적용 방법

요즘은 대부분 HTTPS를 사용하지만,일부 경우에는 여전히 HTTP를 쓰는 경우가 있다.   요즘 HTTP를 쓰는 경우로컬 개발 환경에서 (Localhost)HTTPS 설정 없이 간단하게 개발하기 위해 http://localhost를 많이 씀로컬에서는 SSL 인증서가 필요 없고 설정이 간단해서 개발 중에는 HTTP로 테스트하는 경우가 많다예시 :npm run dev # Vue.js 개발 서버 실행 → http://localhost:5173 해결 방법 (로컬에서도 HTTPS 사용하기)Node.js 환경 : mkcert 같은 도구를 사용해서 로컬 SSL 인증서 생성Spring Boot: application.properties 에서 HTTPS 설정 가능 내부 네트워크에서 ( 사설망 , 사내 시스템 )외부 ..

HTTP와 세션 : 쿠키를 활용한 인증 방식

HTTP는 비연결 구조다 HTTP는 한 번 요청을 받고 응답을 보낸 후 연결을 끊어버리는 비연결(stateless) 방식이다.그렇다면 로그인 정보나 장바구니 정보와 같은 클라이언트 기반 데이터는 어떻게 유지될까? 정답은 서버 측에 저장하는 것이다.서버의 session 객체에 로그인 정보나 장바구니 정보를 담아두고,이후 요청이 올 때 이를 참조하여 사용자 상태를 유지한다. 세션과 쿠키의 역할 HTTP는 연결을 유지하지 않으므로, 요청이 들어올 때마다 서버는 사용자의 세션 정보를 찾아야 한다.그러나 서버 입장에서는 수많은 사용자가 동시에 접속하기 때문에,누구의 세션인지 확인할 방법이 필요하다. 이를 해결하기 위해 세션 ID(Session ID)가 사용된다.세션 ID는 각 사용자의 세션을 식별하는 고유한 값으..

변경된 소스 코드만 추출하여 보관하고 패키징 하는 배치 스크립트

개요이 배치 스크립트는 특정 날짜 이후 변경된 파일을 복사하고, 디렉토리를 정리한 후 JAR 파일을 생성하는 역할을 수행합니다. 이를 통해 개발 환경에서 변경된 소스 파일을 관리하고 패키징할 수 있습니다. @ECHO OFFsetlocalset RootDir=D:\WINPMS\workspace\PMS_FISset ChageDir=D:\WINPMS\workspace\PMS_Uploads\%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%_ChangeECHO 디렉토리 생성MD %ChageDir%ECHO 파일 복사(날짜로 할 경우 /d:02-11-2009 /E 하위 디렉터리가 비어 있는 경우에도 모두 복사합니다 )ECHO %1 일부터 변경된 파일 명세 복사xcop..

MS-SQL에서 CURSOR 사용: 성능과 대안

CURSOR란 무엇인가?MS-SQL에서 CURSOR는 행(Row) 단위로 데이터를 처리할 때 사용되는 객체이다. 일반적으로 SELECT 문을 사용하면 결과 집합을 한꺼번에 가져오지만, CURSOR를 사용하면 한 행씩 순차적으로 데이터를 가져와 처리할 수 있다. CURSOR의 기본 사용 예제다음은 CURSOR를 사용하여 TB_0_Member 테이블에서 데이터를 조회하고, 이를 SP_Member_INSERT 프로시저를 호출하는 방식이다.DECLARE @MemberGroup VARCHAR(200), @MemberName VARCHAR(200), @Mobile VARCHAR(200)DECLARE TempCursor CURSOR -- 커서 선언 FOR SELECT MemberGroup, MemberName..

MS-SQL 함수(FUNCTION) 작성 예제

개요이번 글에서는 MS-SQL의 사용자 정의 함수(User Defined Function) 중 하나인 UF_REP_ATTACHMENTS_LIST_FOR_CHANGES에 대해 분석하고, 그 역할과 동작 방식을 설명하겠습니다. 이 함수는 특정 변경 요청(Changes)에 대한 첨부 파일 목록을 반환하는 기능을 수행합니다. ex) 함수 내용 USE [ovsdDB]GO/****** Object: UserDefinedFunction [dbo].[uf_UI_PERIOD_NAME_LIST_R1] Script Date: 02/26/2025 14:04:24 ******/SET ANSI_NULLS onGOSET QUOTED_IDENTIFIER onGOALTER FUNCTION [dbo].[UF_REP_ATTA..

MS-SQL 저장 프로시저(Stored Procedure) 작성 예제

개요이번 글에서는 MS-SQL의 저장 프로시저(Stored Procedure) 중 하나인 sp_ETCL_ORG_R1에 대해 분석하고, 그 역할과 동작 방식에 대해 설명하겠습니다. 이 프로시저는 I-GATE 시스템에서 조직 정보를 가져와 CMDB(Configuration Management Database)에 반영하는 역할을 합니다. ex) SP 내용USE [ITSM_Interface]GO/****** Object: StoredProcedure [dbo].[sp_ETCL_ORG_R1] Script Date: 03/04/2024 09:02:42 ******/SET ANSI_NULLS onGOSET QUOTED_IDENTIFIER onGO ALTER PROC [dbo].[sp_ETCL_ORG_R1]/..