Java

Programming/Spring

[Spring Boot] Filter (2) -Response Body Modify

2020/07/15 - [Programming/Java] - [Spring Boot] Filter (1) - Request Body Modify [Spring Boot] Filter (1) - Request Body Modify 스프링 기반으로 서버를 개발하다가, 특정 API를 통해 송 수신되는 모든 데이터를 암호화해야 하는 니즈가 생기게 되었다. 다음은 스프링을 조금 공부해봤다고 하는 사람들은 대다수 알만한 스�� johnmarc.tistory.com 이전 글에서 말했듯이 특정 API를 통해 송수신되는 모든 데이터를 암호화해야 하는 니즈로 인해, 들어오는 요청 데이터를 복호화하는 필터 클래스를 작성하였고, 이번에는 요청을 처리한 결과의 응답 데이터를 암호화하는 필터 클래스를 작성해보겠다. 먼저 @Res..

Programming/Java

[Java] AES 256 암복호화 유틸클래스

일을 하다 보니 AES 256 알고리즘으로 암복호화할 일이 생겨서 간단하게 유틸 클래스를 만들어보았다. 256 암호화라서 32자의 암호화 키를 사용해야하며, iv 파라미터를 이용한다. iv 파라미터 값은 암호화 키 16자를 활용한다. import lombok.extern.slf4j.Slf4j; import javax.crypto.*; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidK..

Programming/Java

[Intellij IDEA Plugin, Java] SonarLint 코드 퀄리티를 높여보자!

현재 내가 다니고 있는 회사에는 서버, 웹 클라이언트, 안드로이드등 여러 개발 직군들 별로 서브 챕터라는 이름으로 논리적인 팀이 구성되어있다. 현재 서버 서브 챕터 조직은 6명의 서버 개발자분들이 소속되어있으며, 우연치 않게 내가 서버 서브 챕터의 리더를 맡게 되었다. 나는 서버 서브 챕터원들이 협업하는데 있어서 문제가 없도록 프로젝트 설계 가이드라인을 작성하고, 사용할 개발 스택 선정하고 이를 각 챕터원들에게 공유했다. 최근 서버 개발자분들이 모두 투입되는 통합 프로젝트를 진행하고 있는데, 각 담당 서버별로 코드 리뷰와 API 설계를 검토하면서 컨벤션이 필요하다는 점을 느끼게 되었다. 프로젝트 설계에 대한 가이드라인은 제공하였기 때문에 구조를 파악하는데 힘이 들진 않았지만, 코드의 네이밍 규칙이 정해져..

Programming/Spring

[SpringBoot] Dockerizing a Spring Boot Application

스프링 부트 기반의 어플리케이션을 Docker Container에 올리는 방법을 설명해보겠다. Dockerizing이라는 말은 대상 어플리케이션을 Docker Image로 만들어 Docker에서 Container로 구동 가능한 형태를 만드는 것을 의미한다. 먼저 간단하게 Spring Boot Application을 만들어보자. File -> New Project -> Spring Initializer Next Dependencies -> Web -> Spring Web Click Next 간단하게 hello world를 리턴하는 Controller를 만들어본다. package com.tistory.johnmark.demo; import org.springframework.web.bind.annotatio..

Programming/Java

[Gradle] Gradle 에서 Launch4j Plugin 사용해서 exe 실행파일 만들기

최근 회사에서 개발한 서버 프로그램을 온 프로미스 형태로 납품하는 업무가 자주 생겼고, 기존에 jar파일로 프로그램을 빌드하고, launch4j 프로그램을 통해 직접 한 땀 한 땀 설정해서 exe 파일을 만들었던 것이 너무 불편하고 빡침이 몰려와서(갠 적으로 노가다를 싫어함..) 자동화할 방법이 없나하다가 방법을 찾아서 포스트를 올려본다. 정말 간단한 해결방법이다. 사실 예전부터 있었던 방법인데 내가 아마 늦게 알게된것 같다. 보통 Java 프로젝트를 진행하면 라이브러리 의존성 관리 및 빌드 도구로 maven 또는 gradle을 사용할 것이다. launch4j는 maven이나 gradle에서 모두 적용이 가능하다. 나는 gradle을 사용하고 있기 때문에 gradle을 이용한 방법을 소개한다. 먼저 la..

Programming/Algorithm

[Java-알고리즘] Two Sum

[Problem] Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. [Example1] Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1]. [Example2] Given nums = [3, 2, 4], target = 6, Because nums[1] + num..

Programming/Algorithm

[Java-알고리즘] RangeSumBinaraySearchTree

[Problem] Given the root node of a binary search tree, return the sum of values of all nodes with value between L and R (inclusive). The binary search tree is guaranteed to have unique values. [Example1] Input: root = [10,5,15,3,7,null,18], L = 7, R = 15 Output: 32 [Example2] Input: root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10 Output: 23 [Note] The number of nodes in the tree is at most 10..

Programming/Algorithm

[Java-알고리즘] toLowerCase Implemet

[Problem] Implement function ToLowerCase() that has a string parameter str, and returns the same string in lowercase. [Example1] Input: "Hello" Output: "hello" [Example2] Input: "here" Output: "here" [Example3] Input: "LOVELY" Output: "lovely" [Solution] import java.lang.StringBuilder; class Solution { public String toLowerCase(String str) { char[] characters = str.toCharArray(); int strLen = st..

JohnMark
'Java' 태그의 글 목록 (2 Page)