728x90
반응형

Programming 102

애자일개발방법론 - 애자일 (Agile) 신속한 대응과 품질

애자일개발방법론 - 애자일 (Agile) 신속한 대응과 품질 커뮤니케이션을 통해 비즈니스 요구사항에 유연한 대응이 가능한 방법론시장의 변화 즉 소비자 사용자의 반응에 따라 민첩한 대응을 위해서는 매일매일 다른 전략이 필요합니다.처음 만든 프로그램으로 변경없이 운영하는 것으로 서비스를 활성화하는 것은 불가능 합니다.고객의 지속적인 반응과 행동에 인게이지먼트 즉 연결성을 유지하기 위해 지속적인 기능 개선과 노력이 필요 합니다.민첩한 것은 미리 준비된 것을 상차림 하는 것과 같다.항상 새로운 시장을 준비하라.애자일 (Agile) 개념: 고객의 요구사항 변화에 유연하게 대응하며, 반복적이고 점진적인 개발을 통해 지속적으로 개선합니다.특징: 스프린트라고 불리는 짧은 반복 주기를 통해 개발하고, 각 스프린트마..

Programming 2025.01.02

개발방법론 - 폭포수 모델 (Waterfall Model) 개발 방법론의 교과서

개발방법론 - 폭포수 모델 (Waterfall Model)  개발 방법론의 교과서 폭포수 모델 (Waterfall Model)특징: 각 단계가 순차적으로 진행되며, 이전 단계가 완료되어야 다음 단계로 넘어갈 수 있습니다.장점: 명확한 구조와 단계별 진행으로 관리가 용이합니다.단점: 변경 사항 반영이 어렵고, 초기 단계에서의 오류가 후반에 큰 영향을 미칠 수 있습니다.활용 분야: 요구사항이 명확하고 변경이 적은 대규모 프로젝트, 정부 프로젝트, 방위산업 프로젝트 등 관련 구성 요소요구사항 분석 (Requirements Analysis)프로젝트의 요구사항을 수집하고 분석하여 명확히 정의합니다.요구사항 명세서를 작성합니다.시스템 설계 (System Design)요구사항을 바탕으로 시스템의 구조와 설계를 구체화..

Programming 2025.01.01

애자일개발방법론 - 린 (LEAN) 비용 절감과 효율성 극대화

애자일개발방법론 - 린 (LEAN) 비용 절감과 효율성 극대화 비용 낭비를 최소화하고 가치를 극대화 하는 개발 방법론 빠르게 변화하는 시장의 변화에 민첨한 대응은 Agile조직에 중요한 미션입니다. 특히 불확실한 시장에 제품을 출시하기 위해 과감한 투자보다 작은 시적으로 점진적인 성장을 이루어 가는 것이 중요합니다.그런 측면에서 린(LEAN) 개발.방법론은 애자일 개발 방법론이라 하겠습니다. 린 (LEAN) 개요개념: 낭비를 최소화하고 가치를 극대화하는 개발 방법론으로, 효율적인 프로세스와 지속적인 개선을 강조합니다.특징: 작업 흐름을 시각화하고, 낭비 요소를 식별하여 제거합니다. 지속적인 피드백을 통해 프로세스를 개선하고, 고객의 가치를 최우선으로 생각합니다.활용 방법: 작업 흐름을 시각화하고, 낭비 ..

Programming 2024.12.31

개발방법론 - Domain-Driven Design (DDD) 비즈니스 설계

개발방법론 - Domain-Driven Design (DDD) 비즈니스 설계 #도메인 전문가와 개발자가 협력하여 도메인 모델을개발방법론 - Domain-Driven Design (DDD) 정의 # 도메인 모델에 기반하여 개발하는 방법론 개념: 소프트웨어 설계를 도메인 모델에 기반하여 개발하는 방법론으로, 비즈니스 도메인의 복잡성을 명확히 표현하고 관리합니다.특징: 도메인 전문가와 개발자가 협력하여 도메인 모델을 정의하고, 이를 기반으로 소프트웨어 아키텍처를 설계합니다.활용 방법: 도메인 모델을 중심으로 코드와 비즈니스 로직을 구현합니다. 도메인 전문가와 개발자가 협력하여 도메인 모델을 정의합니다.활용 분야: 복잡한 비즈니스 도메인을 명확히 표현하고, 유지보수가 용이한 소프트웨어를 개발하려는 프로젝트. 예..

Programming 2024.12.30

개발 방법론 - 민첩한 비즈니스 성공을 위한 개발 방법론의 종류와 특징

민첩한 비즈니스 성공을 위한  개발 방법론의 종류와 특징 개발 방법론은 소프트웨어 개발을 조직적이고 체계적으로 진행하기 위해 사용되는 방법론입니다. 다양한 방법론을 이해하고  특정 상황이나 프로젝트에 따라 다르게 적용할 필요가 있습니다.  1. 애자일 (Agile)개념: 고객의 요구사항 변화에 유연하게 대응하며, 반복적이고 점진적인 개발을 통해 지속적으로 개선합니다.특징: 스프린트라고 불리는 짧은 반복 주기를 통해 개발하고, 각 스프린트마다 기능을 추가하고 개선합니다.장점: 변화에 신속히 대응할 수 있으며, 고객과의 지속적인 커뮤니케이션을 통해 높은 품질의 소프트웨어를 개발합니다.단점: 명확한 계획 없이 진행될 경우 혼란이 발생할 수 있으며, 팀의 경험과 능력에 크게 의존합니다.     활용분야 : 스..

Programming 2024.12.29

개발방법론 - 프로토타입 모델 (Prototype Model) 명확한 품질

개발방법론 - 프로토타입 모델 (Prototype Model) 명확한 품질사용자 요구사항을 명확히 파악하고 높은 품질의 소프트웨어를 개발 프로토타입 모델 (Prototype Model)특징: 초기 프로토타입을 개발하여 사용자 피드백을 받고, 이를 바탕으로 최종 소프트웨어를 개발합니다.장점: 사용자 요구사항을 명확히 파악할 수 있으며, 개발 초기 단계에서 문제를 발견할 수 있습니다.단점: 프로토타입 개발에 시간이 소요될 수 있으며, 최종 제품과의 차이가 발생할 수 있습니다.활용 분야: 사용자 요구사항이 명확하지 않은 프로젝트나, 사용자 피드백이 중요한 프로젝트에 적합합니다.개발 절차 초기 요구사항 수집 (Initial Requirements Gathering) 사용자와의 인터뷰, 설문조사 등을..

Programming 2024.12.29

개발방법론 - 효율적인 프로젝트 수행을 위한 개발 방법론의 종류와 특징

개발방법론 - 효율적인  프로젝트 수행을 위한 개발 방법론의 종류와 특징 Prolog낫놓고 기역자를 모른다는 내용 처럼  " Agile, Lean, CBD, DDD " 알고  폭포수 모델 같은 것은 좋지 않은 것으로 분류해서 필요없다고 생각할 수도 있습니다.  꼭 최신 개발방법론을 하면 프로젝트의 성과가 좋은 것도 아닙니다. 오히려 절차를 무시하고 프로젝트를 수행하면 개발 기간은 단축이 되지만 유지보수와 서비스 확장에 더 많은 비용을 지불해야 하는 상황이 더 크다고 봅니다.  종종 개발을 하고 추가로 간단한 기능하나를 만들려면 개발자들이 여러가지 핑계를 대는 경우를 보면됩니다.개발 방법론은 간단 한 것이 좋은 것이 아니라  모든 개발 방법론들을 살펴보고,  프로젝트의 규모와 특성에 따라 제대로 활용을 해..

Programming 2024.12.27

블록 암호화 모드 종류외 사용법

블록 암호화 모드 종류와 사용법블록 암호 알고리즘을 다양한 방식으로 운용하여 더욱 안전하고 효율적인 암호 시스템을 구축하는 데 적절한 방식을 선정하여 사용합니다. 파이썬 예시를 통해 사용법을 알아 봅니다.블록 암호 운영 모드 종류■ ECB (Electronic Codebook) 모드:각 블록을 독립적으로 암호화하는 가장 간단한 모드입니다.장점: 병렬 처리가 가능하고 구현이 간단합니다.단점: 동일한 평문 블록은 항상 동일한 암호문 블록으로 변환되므로 패턴 분석 공격에 취약합니다.사용 예: 이미지 압축 등 데이터의 무결성이 중요하지 않은 경우 ECB를 이용한 암호화 예시from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modesfr..

Programming 2024.12.19

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
728x90
반응형