본문 바로가기

전체 글324

전자 서명 동작 과정 전자서명 전자서명이란 서명자를 확인하고 서명자가 해당 전자 문서에 서명했다는 사실을 나타내기 위하여 첨부되거나 논리적으로 결합된 전자적 형태의 정보를 의미합니다. - 서명자의 신분 증명 - 서명자가 서명했다는 사실에 대한 부인 방지 - 서명한 데이터의 무결성 검증 전자서명 동작 과정 전자서명의 기본적인 동작 과정은 다음과 같습니다. 1. A의 개인키와 공개키를 생성하거나 기존의 키를 조회함 2. 전자문서(원문)의 데이터를 Hash 함수에 넣어서 Hash 값인 Digest를 획득함 3. Digest 값을 A의 개인키를 이용하여 암호화 4. Encrypt Data, 전자문서(원문), A의 공개키를 검증자에게 전송 5. 전달 받은 Encrypt Data를 A의 공개키를 이용하여 복호화 6. 전달받은 전자문서(.. 2022. 8. 6.
[Android] 4대 Component Android에는 앱을 구성하는데 필요한 4개의 구성 요소(Component)가 존재하는데 이를 4대 Component라고 부릅니다. 4대 Component는 Activity(액티비티), Service(서비스), BroadCast Receiver(방송 수신자), Content Provider(콘텐츠 제공자)로 구성되며 각 Component는 독립적인 형태로 존재하고 고유한 기능을 수행하며 Intent(인텐트)를 통해 상호작용 합니다. Activity (액티비티) Activity는 사용자에게 보여주는 UI 화면을 구성하는 Component로써 앱의 화면을 나타낸다고 볼 수 있습니다. Application에서 Activity가 하나도 존재하지 않을 경우 사용자와 상호작용을 할 수 없기 때문에 적어도 하나 이.. 2022. 8. 5.
Kotlin에 대하여 알아보자 Kotlin이란 간결한 문법과 높은 안전성을 보장하는 Java와 100% 호환이 가능한 오픈 소스 기반의 프로그래밍 언어 입니다. 2017년 Google에서 Android의 공식 언어로 Kotlin을 추가하였으며, 현재는 구글 내부의 안드로이드 프로젝트에서도 Java 대신 Kotlin을 사용하고 있을만큼 영향력이 커져가고 있습니다. Kotlin의 특징 정적 타입 언어 (Static Typed Language) Kotlin의 경우 컴파일 시점에 변수의 타입이 결정되는 정적 타입 언어입니다. 정적 타입 언어는 타입 에러로 인한 문제를 컴파일 시 해결할 수 있기 때문에 안정성이 높다는 장점과 컴파일 시 미리 타입을 결정하기 때문에 실행 속도가 빠르다는 장점을 가지고 있습니다. // Kotlin 코드(정적 타입.. 2022. 8. 1.
Spring과 Spring Boot의 차이점에 대해 알아보기 Spring Spring Framework는 Java 생태계에서 가장 대중적인 응용 프로그램 개발 Framework 이며, IoC(Inversion of Control: 제어의 역전), DI(Dependency Injection: 의존성 주입), AOP(Aspect Oriented Programming: 관점 지향 프로그래밍)라는 특징을 가지고 있습니다. IoC(Inversion of Control: 제어의 역전) 메서드나 객체의 호출 작업을 개발자가 결정하는 것이 아닌 프레임워크 내부의 Container가 제어하기 때문에 이를 IoC(제어의 역전)라고 부릅니다. 보다 자세한 내용은 아래의 포스팅에서 확인해주세요. [Spring Boot] Bean 이해하기 (With Spring Container) Be.. 2022. 7. 26.
[Spring Boot With Kotlin] Spring Interceptor 로그인을 수행한 이후에만 사용 가능한 기능들이 있을 경우 로그인이 정상적으로 이뤄졌는지 확인하는 것은 세션을 통해 간단히 확인할 수 있습니다. 그러나 해당 기능들과 매핑된 모든 메서드에서 로그인 여부를 확인하는 것은 코드도 길어질 뿐만 아니라 매우 귀찮은 작업이라고 할 수 있습니다. 만약 이와 같이 특정 경로에 접근하기 전에 확인해야 될 내용(ex: 권한 확인, 로그 수집)이 있다면 Spring Interceptor를 이용하여 쉽게 확인할 수 있습니다. Spring Interceptor는 "Request가 처리되기 이전"과 "Request가 처리된 이후" 그리고 "모든 요청이 마무리 된 이후"에 필요한 작업을 정의하여 처리할 수 있습니다. Method 설명 preHandle Request가 처리되기 이전.. 2022. 7. 25.
[Spring Boot] Bean 이해하기 (With Spring Container) Bean을 이해하기 위해서는 먼저 Spring Container(또는 IoC Container 라고 불림)에 대해 알아야 합니다. Spring Container는 Spring Framework로써 객체를 생성하고 객체와 의존성을 관리하는 컨테이너 입니다. Spring에서는 Bean 객체를 관리하는 BeanFactory와 해당 컨테이너를 상속하여 보다 다양한 기능을 지원하는 ApplicationContext가 이 역할을 담당하고 있습니다. 그렇다면 Bean이란 무엇일까요? Bean은 Spring Container에 의해 생성된 객체를 의미합니다. Bean으로 등록된 객체는 ApplicationContext.getBean() 메서드를 이용하여 어디서나 해당 객체를 사용할 수 있습니다. Spring Conta.. 2022. 7. 25.
[Spring Boot With Kotlin] RESTFul API, JSON 데이터 처리하기 Data Entity package com.hacksms.AssetsManaged.Model import java.time.LocalDate import javax.persistence.Column import javax.persistence.Entity import javax.persistence.GeneratedValue import javax.persistence.Id import javax.persistence.ManyToOne @Entity class Users( @Column(nullable=false, unique=true) var loginId: String, var password: String, var permission: Int, // 1 is admin user, 2 is norma.. 2022. 7. 24.
[Spring Boot With Kotlin] 오류 별 해결 방안 정리 오류1 상황 Entity를 작성 후 정상적으로 동작하는지 확인하기 위해 Test 코드를 작성하였는데 실행 시 해당 에러가 발생하였음. 오류 문구 Execution failed for task ':test'. There were failing tests. See the report at: file:///{프로젝트 경로}/index.html 해결 방안 1. "File > Settigns > Build, Execution, Deployment > Build Tools > Gradle" 메뉴로 이동한 뒤, "Run tests: using" 옵션을 "IntelliJ IDEA"로 선택 후 적용 2022. 7. 24.
[Spring Boot] Spring Boot에 사용되는 모듈에 대해서 알아보자 Spring Boot Devtools Devtools는 Spring Boot에서 제공하는 개발 편의를 위한 모듈이며, 개발 편의를 위해 제공되는 기능은 크게 5가지 입니다. Property Defaults Automatic Restart Live Reload Globlas Settings Remote Applications Property Defaults 스프링 부트에 지원하는 여러 라이브러리(ex: thymeleaf Template)의 경우 기본적으로 캐싱 기능을 제공하지만, 개발 과정에서는 개발된 내용이 바로 적용되지 않아 비효율적일 수 있습니다. spring-boot-devtools는 기본적으로 이러한 캐싱 옵션을 비활성화함으로써 개발의 편의성을 높여줍니다. 이렇게 제공되는 기본 속성들의 값은 다음.. 2022. 7. 24.