개발은 재밌어야 한다
article thumbnail
[디자인 패턴] 빌더 패턴(Builder Pattern)

스프링 인 액션 5판 스터디를 진행하던 중에 스프링 시큐리티에서 빌더 패턴이 사용되는 부분을 보고 빌더 패턴에 대한 포스팅을 해보겠습니다. 빌더 패턴은 소프트 웨어 디자인 패턴 중에 하나로 복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴이다. 2 단어 요약 생성자 오버로딩 (위키백과- 빌더 패턴) 일단 무슨 소린지 잘 와닿지 않는다. 객체를 생성하는 방법이 여러 가지 있는데, 일반적으로 사용되는 방법은 1.생성자에 인자를 넣어 인스턴스를 생성하는 방법이나 2.setter를 이용하는 자바빈 패턴을 많이 사용합니다. 3. 빌더 패턴은 이런 패턴들에서의 단점을 좀 더 개선한 방법으로 사용되는 방법입니다. 예시로 피자라는 객체가 있다고 가정해보..

article thumbnail
[JAVA 자바] String, StringBuilder, StringBuffer의 차이
JAVA 2021. 6. 16. 10:21

Java에서 문자열을 다루는 대표적인 클래스로 String, StringBuilder, StringBuffer가 있습니다. 이 세가지 클래스 모두 문자열을 저장하고 관리하는 클래스이며 연산이 많지 않을때에는 이 중 어떠한 클래스를 사용해도 이슈가 발생할 가능성은 거의 없습니다. 각 클래스의 특징에 맞게 상황에 따라 적절하게 사용해주면 됩니다. | String VS StringBuilder / StringBuffer String은 immutable(불편)하고 StringBuilder,StringBuffer는 mutable(가변)하다는 차이로 나눌 수 있습니다. HelloWorld 라는 문자열을 예시로 보겠습니다. HelloWorld 라는 문자열을 만들기 위해 먼저 할당된 'Hello' 문자열을 생성했다고 ..

article thumbnail
[JAVA 자바] String 문자열 자르기 (substring(), split(), StringTokenizer)
JAVA 2021. 4. 28. 16:15

String 문자열에서 원하는 특정 문자들을 잘라서 사용해야 할 때가 자주 있습니다. 이번 포스팅은 이런 문자열을 자르는 방법들에 대해서 알아보겠습니다. substring() - 특정 인덱스를 기준으로 자른 문자열을 반환 📄substring(int index) - index부터 문자열 끝까지 문자열을 리턴(String) 📄substring(int beginIndex, int endIndex) - beginIndex 부터 endIndex전까지 문자열을 리턴(String) String으로 구성된 문자열은 기본적으로 char형태의 한개의 문자를 여러개로 구성한 형태인데 이러한 String을 특정 index를 중심으로 자르는 방법으로 substring() 메소드를 사용합니다. subString은 특정 인덱스의 ..

article thumbnail
[JAVA 자바] Date 원하는 날짜 포맷으로 변환하기(날짜 형태, 데이터형 변환, 초를 x일x시간x분x초로 변환)
JAVA 2021. 4. 21. 15:33

이번 포스팅은 실무에서 주로 날짜 데이터를 다룰때가 있는데 그때마다 주로 사용하는 방법들을 정리해보려고 합니다. 1. 경과된 밀리세컨드(millisecond)를 현재시간에서 빼기 1 2 3 4 5 6 7 8 9 10 11 // millisecond 값이 String으로 주어졌을때 // 2412716459밀리세컨드 만큼의 값이 흘렀을 때 현재시간에서 밀리세컨드를 뺀 날짜를 구하기 String strMilliSeconds = "2412716459"; Long MilSeonds = Long.parseLong(value.toString()); Date nowDate = new Date(); long wantMilSecs = nowDate.getTime() - MilSeonds; Date wantDate = ne..

article thumbnail
[JAVA 자바] instanceof 사용하여 객체 비교하기
JAVA 2021. 4. 9. 14:57

자바에서 데이터의 객체 타입이 뭔지 비교가 필요하여 해당 객체가 어떤 객체인지 파악할 때가 있어서 사용을 해봤습니다. 예시는 객체 데이터의 값이 어떤 객체인지를 확인하기 위한 예제입니다. // 키 값이 String, 값이 Object인 dataMap이 있다고 가정합니다. Map dataMap = new HashMap(); // dataMap에 첫번째는 String, 두번째는 Boolean 세번째는 Int 값을 넣습니다. dataMap.put("first", "StringValue"); dataMap.put("second", true); dataMap.put("third", 3); // for 문으로 각각의 키값 반복문을 통하여 값에 따른 객체의 형태를 알아봅시다. for (String key : data..

article thumbnail
[JAVA 자바] HashMap에서 키-값 (Key-value) 가져 오기
JAVA 2021. 4. 7. 16:56

주로 스프링에서 RESTAPI의 결과값으로 받아올 때에 MAP형태나 리스트맵형태로 반환을 사용하기 때문에 Map에 대한 이해가 필요할 때가 많다. HashMap에 대한 사용을 위해 키들과 값을 가져오는 방법에 대해 알아보자 다음과 같은 HashMap을 선언하였습니다 Map classMap = new HashMap(); HashMap은 {key - value}의 형태로 쌍의 데이터로 저장되는 구조를 갖고 있는 객체이다. 값은 중복될 수 있지만 키 값은 중복이 되지않아 이미 존재하는 key 값에 동일한 key를 put하게 되면 기존의 데이터는 새로 put한 값으로 대체가 된다. 선언한 classMap에 키와 값들을 아래와 같이 세팅해준다. classMap.put("철수", 1); classMap.put("영..

article thumbnail
Call by value vs Call by Reference
JAVA 2021. 3. 23. 18:24

이번에는 간단하면서도 중요한 개념인 CallCall by value와 Call by Reference에 대해서 알아보려고한다. 전공시간에 교수님이 매우 중요한 개념이라고 말씀하셨는데 면접때도 질문으로 나왔었던.... 우선 Call by value와 Call by Reference는 일단 함수의 호출 방식을 의미한다. Call by value(값에 의한 호출) - 함수에 매개 변수의 내용물을 전달하여 복사해서 사용하는 방식 Call by reference(참조에 의한 호출) - 함수에 매개 변수의 참조 주소를 참조해서 호출하는 방식 의미 자체로만 본다면 함수의 호출을 값에 의해서 하는가 아니면 참조에 의해서 하는가라는 차이를 알 수 있다. 참조와 값에 따른 호출에 대한 좋은 그림예시가 있다 Call by ..

article thumbnail
스프링 (Spring Vue) 게시판 만들기 #1. 스프링(Spring) 프로젝트 생성하기
Spring/게시판 만들기 2020. 7. 21. 00:47

이클립스(STS)에서 스프링 프로젝트를 생성하는 방식은 1) 처음부터 스프링 프로젝트를 지정하고 생성하는 방식 2) Maven이나 Gradle 프로젝트를 생성한 후 프레임워크를 추가하는 방식 3) 직접 프레임워크 라이브러리를 추가하는 방식이 있다. * 프로젝트 생성하기 STS나 Eclipse의 스프링 관련 플러그인을 설치하면 별도의 설정없이 Maven을 사용하는 스프링 프로젝트를 생성할 수 있다. 화면 오른쪽 상단의 'Perspective'를 'Spring'으로 지정한 후 'File'메뉴를 통해 프로젝트를 생성한다. 'Spring Legacy Project' 메뉴를 이용하여 스프링 기반 프로젝트를 Maven 기반으로 생성할 수 있다. 프로젝트는 'Spring MVC Project'를 생성한다. Next를..