728x90
반응형

Programming 76

go 언어 db ORM framework best

go 언어  db  ORM framework  best 각각의 Go 언어 데이터베이스 입출력 프레임워크를 예시와 함께 비교해드릴게요.1. GORMGORM은 Go에서 가장 인기 있는 ORM 패키지 중 하나로, 코드 우선 접근 방식을 사용합니다. 스키마 자동 마이그레이션, 로깅, 준비된 문, 제약 조건 등을 지원합니다.예시:```gopackage mainimport (    "gorm.io/driver/sqlite"    "gorm.io/gorm")type User struct {    ID   uint    Name string    Age  int}func main() {    db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})    if err ..

Programming 2024.08.19

비밀번호 관리 해시 알고리즘 비교 - Argon2, Scrypt, PBKDF2, SHA2Crypt, Bcrypt

비밀번호 관리 해시 알고리즘 비교 - Argon2, Scrypt, PBKDF2, SHA2Crypt, Bcrypt 비밀번호 해시 알고리즘은 사용자 비밀번호를 안전하게 저장하기 위해 중요한 역할을 합니다. 각 알고리즘은 서로 다른 보안 모델과 성능 특성을 가지고 있으며 적절한 선택이 필요합니다. 이번에는 Argon2, Scrypt, PBKDF2, SHA2Crypt, Bcrypt 등 암호화 알고리즘들의 주요 특징과 차이점을 비교하고 평가해 보겠습니다. 1. Argon2 개요: Argon2는 최신 비밀번호 해시 알고리즘으로, 2015년 비밀번호 해시 챌린지에서 우승하여 주목받았습니다. 메모리 집약적이고 병렬화가 가능하여 높은 보안성을 제공합니다. 장점: - 높은 보안성: 메모리와 CPU 사용량을 조절하여 다양한..

Programming 2024.08.16

(암호화)AES128_GCM 암호화를 이용한 키 암호화

(암호화)AES128_GCM 암호화를 이용한 키 암호화 AES-GCM AES-GCM(게일로아/카운터 모드)은 병렬 처리가 가능합니다. 즉, 암호화 및 복호화를 동시에 수행할 수 있습니다. AES-256이 AES-128-GCM보다 키 길이가 길어서 안전하다고 합니다. 하지만 AES-128로도 안전하고 비용 효율적인 방식이라고 봅니다. AES-128 GCM 모드 *AES (Advanced Encryption Standard)**는 널리 사용되는 대칭 키 암호화 알고리즘으로, 다양한 보안 요구사항을 충족시키기 위해 설계되었습니다. AES는 다양한 암호화 모드를 지원하며, 그 중 *GCM (Galois/Counter Mode)*는 고성능 및 보안 기능을 제공하는 모드입니다. AES-128 GCM 모드의 주요 특..

Programming 2024.07.04

AES256 암호화 - 안전한 암호화를 위한 Salt와 IV(Initialization Vector)

AES256  암호화 - 안전한 암호화를 위한 Salt와 IV(Initialization Vector) 안전한 암호화를 위해서 암호와 키의 보관과 암호를 유도하는 Salt 키와 IV(초기화 백터값)을 이용한 보안을 강화하는 방법을 정리하여 봅니다.  ㅁ AES (Advanced Encryption Standard) 암호화AES (Advanced Encryption Standard)는 미국 국립표준기술연구소(NIST)가 선정한 암호화 표준으로, 다양한 보안 애플리케이션에서 널리 사용됩니다. AES는 대칭 키 블록 암호화 방식으로, 동일한 키를 사용하여 데이터를 암호화하고 복호화합니다. AES는 128비트, 192비트, 256비트 키 길이를 지원하며, AES-256은 256비트 길이의 키를 사용하는 가장 강..

Programming 2024.07.03

Andorid - iOS - 모바일 기기별 고유식별값 - Android ID 와 Identifier for Vendor (IDFV)

Andorid - iOS -모바일 기기별 고유식별값 - Android ID 와 Identifier for Vendor (IDFV) - 모바일 앱/기기별 고유한 값(식별키)을 이용할때 필요한 식별 키값의 종류 - 모바일 앱에서 기기별로 고유한 값을 생성하여 사용하는 데는 여러 가지 방법이 있습니다. 각 방법은 목적과 보안 요구 사항에 따라 적절히 선택되어야 합니다. 다음은 주요 키값의 종류와 그 특성입니다. Android 1. Android ID : 기기별 고유한 64비트 값 - 단말기에서 구글 계정을 로그인하면 생성됨, 앱을 제거하고 재설치 해도 변경 되지 않음 - Android ID는 기기 내의 특정 사용자에 대해 고유합니다. 즉, 동일한 기기라도 사용자 계정이 다르면 Android ID가 달라집니다 ..

Programming 2024.07.02

브라우저 확장 - 자동 로그인 입력기 작성 예제 - Auto Login Extension

크롬 익스텐션(chrome-extension) 으로 로그인 자동 입력기 "Auto Login Extension" 을 작성해 보았습니다.  * 크롬 익스텐션으로 자동 로그인 입력기(Auto Login Extension) 예제 파일 :  크롬 익스텐션(chrome-extension, 크롬 확장 프로그램 ) 개요 크롬 익스텐션(chrome-extension, 크롬 확장 프로그램) 은 구글 크롬 브라우저를 확장하여 사용자에게 추가 기능을 제공하는 소프트웨어입니다. 크롬 확장 기능은 JavaScript, HTML, CSS 등을 사용하여 개발되며, 브라우저의 기능을 확장하거나 사용자의 맞춤형 경험을 제공할 수 있습니다. 크롬 익스텐션의 주요 특징1. 사용자 인터페이스 향상: 사용자 인터페이스(UI)를 변경하거나 향..

Programming 2024.06.20

[python] python virtualenv (가상환경) 사용하기

[python] python virtualenv (가상환경) 사용하기 Python virtualenv (가상환경,venv)은 파이썬 패키지 및 응용 프로그램을 독립적인 환경에 설치하고 실행할 수 있는 파이썬 모듈입니다. 가상 환경을 사용하면 각 프로젝트별로 필요한 패키지를 별도의 공간에 설치하여 각 프로젝트 간에 서로 영향을 미치지 않습니다. 이를 통해 의존성 문제를 해결할 수 있습니다.python venv 가상환경을 이용하는 방법1. 가상 환경을 만들 디렉토리를 선택합니다.2. 새로운 가상 환경을 생성합니다.3. venv 가상 환경을 사용하도록 활성화합니다.4. 가상환경에서 패키지를 설치 합니다.5. 가상 환경을 비활성화합니다.6. 패키지 설치 시 pip 버전이 낮은 경우  python venv 가상환..

Programming 2024.04.26

[엑셀] Excel VBA 코드 작성 - 엑셀 문자열 찾는 ZLOOKUP - 사용자 정의 엑셀 함수 만들기

[엑셀] Excel VBA 코드 작성 - 엑셀 문자열 찾는 ZLOOKUP - 사용자 정의 엑셀 함수 만들기 #엑셀 LOOKUP함수 #엑셀_사용자정의_함수 ZLOOKUP 함수는 Excel VBA를 사용하여 맞춤형 검색 기능을 구현한 것입니다. 이 함수는 지정된 범위 내에서 문자열을 검색하고, 해당 문자열이 포함된 행에서 특정 컬럼의 값을 반환합니다 엑셀 2010 이후 , XLOOKUP 함수가 있으면 된다는데 엑셀 2010 이전 버전이라 작동이 안되어서 직접 작성해 보았습니다. 엑셀에서 원하는 영역에서 특정 문자열이 있는 항목을 찾고 싶은데 VLOOKUP, HLOOKUP 같은 문자열을 찾는 함수들을 이용하는 것은 했지만 원하는 결과를 얻기 어려웠습니다. 그래서 여러 기능들을 찾아 보다가 직접 만들어 보기로 ..

Programming 2024.04.09

Gradle 설치 마스터 클래스 - 단계별로 익히는 간편한 설정 가이드

Gradle 설치 마스터 클래스 - 단계별로 익히는 간편한 설정 가이드 [ 목 차 ] 1. Gradle 설치 2. 환경 변수 설정 3. Gradle 버전 확인 4. 기본 프로젝트 생성 5. 프로젝트 디렉토리 구조 확인 6. gradle 설정으로 "Hello World" 프로젝트 만들기 7. gradle로 프로젝트 컴파일하고 실행하기 8. 특정 클래스만 컴파일 하고 테스트 하기 # Setting Up for Gradle # compile and run with gradle Gradle을 설정하는 것은 프로젝트를 시작하는 첫 번째 단계입니다. 아래는 Gradle을 설정하는 예시입니다. 1. Gradle 설치 먼저, [Gradle 공식 웹사이트](https://gradle.org/install/)에서 Grad..

Programming 2024.01.04

자바 개발자를 위한 필수 도구 설치 가이드 - JDK, Gradle, Maven 한 번에 완성하기

자바 개발자를 위한 필수 도구 설치 가이드 - JDK, Gradle, Maven 한 번에 완성하기 [ 주요 내용 ] 1. 시스템 환경 변수 설정 (Windows) 2. Java 개발 환경 필수 도구 설치 (JDK, GRADLE, MAVEN) 3. 설치 검증 1. 시스템 환경 변수 설정 (Windows) - 시스템 속성창( sysdm.cpl )을 열고 윈도우 환경 변수를 설정 합니다. 개발 환경을 세팅할 때 경로 설정을 위해 자주 들어가게 되는 창이 "시스템 속성" 창입니다. 그런데 window10이후에는 이 창을 찾기가 어렵습니다. 그래서 시스템 명령으로 찾는 방법을 소개 합니다. sysdm.cpl ( system device manager control panel applet ) - 윈도우키 + R키로..

Programming 2024.01.02

웹사이트 소셜 공유를 위한 Open-Graph 필수값

Open-graph를 이용한 웹사이트 공유할 필수값 오픈그래프(Open Graph)는 페이스북이 개발한 메타데이터 프로토콜로, 2010년에 처음 도입되었습니다. 이는 웹페이지가 소셜 미디어에서 공유될 때 콘텐츠를 풍부하게 나타내기 위한 것이었습니다. Open Graph는 "OG Tag" 또는 "Open Graph Protocol (OGP)" 라고 하며, 웹 페이지의 메타 데이터를 정의하는 프로토콜로, 웹 페이지가 소셜 미디어에서 공유될 때 적절한 정보를 제공하는 데 사용됩니다. Open Graph 에 대하여 알아 봅니다.1. 소셜 웹사이트 공유에 필요한 필수 값 2. Open Graph 활용 3. OpenGraph를 사용할때 유의 사항 1. 소셜 웹사이트 공유에 필요한 필수 값 소셜 웹사이트 공유 필수 ..

Programming 2023.12.21

■(꿀팁)-웹페이지 성능- 랜더링의 이해와 속도 개선을 위한 Java-Script 기능 (async , defer, crossorign)

(꿀팁)-웹페이지 랜더링의 이해와 속도 개선을 위한 Java-Script 기능 (async , defer, crossorign) 1. 웹브라우저의 랜더링ㅇ웹프런트 화면을 구성하는 HTML은 Html Tag로 구성된 Text뿐 아니라 여러 개의 image CCS, Java-script 등의 파일 리소스로 구성되어 있다. 웹브라우저는 이들 리소스들을 서버로부터 다운로드하고 브라우저 내에서 로딩하고 파싱 하여 Dom구조를 만들어 우리가 보는 화면으로 보여 주는 과정을 거친다. 이런 과정을 웹 브라우저에서 랜더링이라고 한다. 정리하면 다음과 같다. 1. 웹브라우저는 서버로부터 HTML 문서를 다운로드한다. 2. 랜더링 엔진은 HTML을 파싱 하면서 DOM( Document Object Mode) Tree로 변환..

Programming 2023.11.11

Python 기초 - 튜플(Tuple) 자료형의 특징과 활용

Python 기초 - 튜플형(Tuple) 자료형의 기초 파이썬에서 튜플(Tuple)은 변경할 수 없는(immutable) 시퀀스 자료형입니다. 튜플은 괄호 ()를 사용하여 정의하며, 각 요소는 쉼표로 구분됩니다. 리스트와 같이 인덱스를 이용하여 값을 접근 할수 있습니다. 튜플은 리스트와 유사하지만 한 번 생성되면 값을 추가, 삭제, 수정할 수 없는 변할 수 없는 자료형을 Tuple(튜플)이라고 부릅니다. my_tuple = (1, 2, 3, 'hello') # 리스트와 같이 인덱스를 이용하여 값을 읽을수 있습니다. print(my_tuple[0]) # 1 print(my_tuple[-1]) # 'hello' 인덱스를 이용한 튜플 값의 이용 튜플의 요소에는 인덱스를 사용하여 접근할 수 있습니다. 인덱스는 ..

Programming 2023.10.17

Python 기초 문법 제어문 - 조건문

Basic Python (파이썬 기초 문법) 제어문 - 조건문 프로그래밍은 특정 목적을 달성하기 위해 설계된 알고리즘(algorithm)을 프로그래밍 언어를 사용하여 구체적인 프로그램으로 작성하는 과정입니다. 프로그래밍을 위한 프로그램(개발) 언어들은 데이터 처리를 위해 표준화된 문법을 제공합니다. 기본적인 특성으로 입력과 출력을 처리하는 과정에서 데이터를 처리하기 위해 진행 과정을 제어(분기 처리)하고 반복하여 데이터를 원하는 방향으로 가공하는 것입니다. 데이터 처리 과정의 특정 조건에 따라 분기 처리하는 문장을 "조건문"이라고 합니다. 조건문은 특정 조건일 경우 데이터를 처리하는 문법으로 입력 받은 데이터를 검증하거나, 특정 조건일 경우 데이터를 반복할때 많이 사용합니다. 1. IF조건문 if 조건문..

Programming 2023.10.14

Python 기초 문법 제어문 - 반복문

Basic Python (파이썬기초문법) 제어문 - 반복문 프로그래밍은 특정 목적을 달성하기 위해 설계된 알고리즘(algorithm)을 프로그래밍 언어를 사용하여 구체적인 프로그램으로 작성하는 과정입니다. 프로그래밍을 위한 프로그램(개발) 언어들은 데이터 처리를 위해 표준화된 문법을 제공합니다. 기본적인 특성으로 입력과 출력을 처리하는 과정에서 데이터를 처리하기 위해 진행 과정을 제어(분기 처리)하고 반복하여 데이터를 원하는 방향으로 가공하는 것입니다. 대량의 데이터를 반복적으로 처리하기 위해서는 "For문", "While 문", "Range문" 과 같은 반복문을 가장 많이 사용하게됩니다. 각각의 사용 방법과 특성을 알아 보도록 하겠습니다. 1. For 반복문 for문장은 같은 문장을 반복하여 처리하는데..

Programming 2023.10.13

Python 리스트형 - Lamda 함수를 이용한 리스트 활용-람다식

Python 리스트형 - Lamda 함수를 이용한 리스트 활용 람다 함수 (lambda function) ?람다(lambda) 함수는 일반적인 함수 선언과는 달리 이름이 없고 한 줄로 표현됩니다. 주로 간단한 연산이나 함수를 인자로 받아 처리할 때 사용됩니다. 람다 함수는 익명 함수로 함축적인 문장으로 간단한 연산이나 변환에 적합합니다. 람다 함수를 사용하면 간단한 반복과 데이터 처리를 쉽게 할수 있습니다. 그러나 람다 함수는 기능이 함축적이기 때문에 이해하거나 사용하기 복잡하고 까다롭습니다. 리스트 처리를 위해서 간단한 방안을 찾아 람다 함수를 정리해 봅니다. 람다 함수의 사용법# 람다함수의 선언 lambda arguments: expression # arguments는 함수의 입력 매개변수이고 # e..

Programming 2023.10.12

Python 리스트형 - 중복값을 제거하고 Unique List 만들기

Python 리스트형 - 중복값을 제거하고 Unique List 만들기리스트에 중복된 값을 제거하고 Unique 값을 저장하는 방법 입니다. 리스트형의 특징과 활용1. 다양한 데이터를 저장 - 변수형 관계 없음 2. 순서가 있음 - 입력되는 순서대로 내부 index로 관리됨 3. 가변성 - 리스트의 내용을 변경할 수 있음 (입력,수정,삭제) 4. 길이를 가짐 - 리스트는 길이 요소를 가짐 len() 5. 슬라이싱 - 리스트에서 일부분을 추출하려면 슬라이싱(분리)하여 사용 가능 6. 반복하여 처리 가능 - 리스트형을 반복문에서 쉽게 사용 리스트형의 Unique List 값 저장1. .set()을 이용한 Unique 리스트 리스트는 입력 값의 종류에 상관없이 순서대로 저장하므로 값의 중복이 발생 됩니다. 이..

Programming 2023.10.11

Python 리스트형 - 리스트형 특징과 활용 기초

Python 리스트형 - 리스트형 특징과 활용 기초 리스트형의 특징과 활용 1. 다양한 데이터를 저장 : 변수형 관계 없음 2. 순서가 있음 : 입력되는 순서대로 내부 index로 관리됨 3. 가변성 : 리스트의 내용을 변경할 수 있음 (입력,수정,삭제) 4. 길이를 가짐:리스트는 길이 요소를 가짐 len()\ 5. 슬라이싱 : 리스트에서 일부분을 추출하려면 슬라이싱(분리)하여 사용 가능 6. 반복하여 처리 가능 : 리스트형을 반복문에서 쉽게 사용 파이썬 리스트 형 파이썬에서 리스트(list)는 데이터를 입력 순서대로 여러 가지 값을 담을 수 있는 가변(mutable)한 자료형입니다. 리스트는 대괄호([])로 표현되며, 각 값은 쉼표로 구분됩니다. 리스트는 인덱스를 사용하여 각 요소에 접근할 수 있습니다..

Programming 2023.10.10

티스토리 구글 서치 콘솔 등록 - 검색 늘리기 위한 웹마스터 도구

티스토리 구글 서치 콘솔 등록 - 검색 늘리기 위한 웹마스터 도구 구글, 네이버, Bing은 검색 엔진이 웹사이트 크롤링을 위해서 웹마스터도구(서치콘솔)를 통해 웹사이트 등록을 받고 있습니다. 웹페이지를 등록하는 과정은 웹사이트 인증으로 사이트의 특정 코드를 통해 인증을 받아 등록 할 수 있으며 등록된 사이트는 별도 sitemap.xml을 등록하여 등록되는 블로그 글을 크롤링해서 검색에 노출하게 됩니다. 웹마스터 도구의 종류 1) 구글 서치콘솔 : https://search.google.com/search-console 2) 네이버 서치어드바이저 : https://searchadvisor.naver.com/ 3) Bing 웹마스터 도구 : https://www.bing.com/webmasters/ 1. ..

Programming 2023.10.10

(truffle 환경 설정)Truffle deploy 오류 해결 - Error: Could not find artifacts for Simple

(truffle 환경 설정) 스마트 계약 배포 - truffle deploy 오류 해결 - Error: Could not find artifacts for SimpleStorage from any sources 간단한 오류의 원인은 truffle 환경의 contracts 소스의 위치를 확인하여야 하는 경우 입니다. 처음 truffle을 사용하다보니 환경 설정의 묵시적인 설정을 잘 이해하지 못한 경우 발생하는 오류 입니다. Truffle 설치 와 스마트 계약(Smart Contract) 개발1. Truffle 설치 - 스마트 계약 개발 환경 구성 (truffle, ganache-cli, solc ) - npm install -g truffle - npm install -g ganache-cli - npm ..

Programming 2023.08.03
728x90
반응형