Skip to content

Instantly share code, notes, and snippets.

View benelog's full-sized avatar

Sanghyuk Jung benelog

View GitHub Profile
@benelog
benelog / DemoApplication.java
Last active January 15, 2024 22:16
GET + body by RestTemplate
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController("/")
@benelog
benelog / RemoteFileClient.java
Last active November 27, 2023 21:22
URL을 파일로 복사
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.file.Path;
import java.time.Duration;
public class RemoteFileClient {
private final HttpClient httpClient;
@benelog
benelog / head-first-design-pattern.md
Last active November 27, 2023 21:23
Head first design pattern 1,2판 차이
  • 페이지별 제목이 큰 흐름 맥락에서의 목적을 드러내는 방식으로 바뀌고 기존 제목은 작게 표시
    • 예: 바뀌는 부분을 찾아내봅시다 -> 최첨단 피자코드 만들기(바뀌는 부분을 찾아내봅시다)
    • 복습하거나 중간에 있는 내용을 찾아보기에는 더 편해진 느낌이다.
  • 낱말퀴즈가 전반적으로 바뀌어 있음.

2장 옵져버 패턴

  • java.util.Observer를 쓰던 예제가 2판에서는 직접 정의한 인터페이스를 쓰도록 변경
    • Java8이후에는 java.util.Observer 등이 거의 안 쓰인다는 설명도 추가 됨.

5장 싱글턴 패턴

@benelog
benelog / RestCall.kt
Last active April 18, 2019 19:38
RestTemplate 활용
private fun getResponse(disqusOauthUrl: String): ResponseEntity<String> {
val endpoint = URI.create(disqusOauthUrl)
val req = RequestEntity<Any>(HttpMethod.GET, endpoint)
val resType = object : ParameterizedTypeReference<String>() {}
return RestTemplate().exchange<String>(req, resType)
}
@benelog
benelog / AspectTest.java
Created April 9, 2019 19:56
spring aop order 테스트
package com.test.aop;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.aop.support.AopUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
@benelog
benelog / Test.jsh
Last active December 3, 2017 04:14
int count = 3; // main count1;
int count2 = 3; // main count2;
int count3 = 3; // main count3;
int count4 = 3; // main count4;
int causeCategoryCount = 3; // main count1;
I hope this edition captures my continued enthusiasm for the platform and helps make your use of the platform and its new features more effective and enjoyable.
@benelog
benelog / commands.txt
Created January 20, 2017 21:02
tcplay
sudo tcplay -c -d /dev/loop0 -a whirlpool -b AES-256-XTS
sudo mkfs.ext4 /dev/mapper/source.tc
losetup /dev/loop0 source.tc
tcplay -m source.tc -d /dev/loop0
mount /dev/mapper/source.tc /mnt/source/
@benelog
benelog / presentation-framework.md
Last active January 8, 2017 13:13
presentation-framework.md

장점

  • 한 슬라이드 내에서 스크롤 지원
  • Asciidoc 지원
  • 프린트, PDF변환 자연스럽게 됨.

단점

  • Markdown, Asciidoc을 쓸 때 명시적으로 페이지 구분자를 넣을 수 없음.
    • H2 태그 기준으로만 페이지 전환
@benelog
benelog / java-string-concat.md
Last active April 14, 2023 13:42
String 최적화 JDK 1.5

jdk1.5에서 String 더하기의 컴파일시의 최적화]

String 클래스를 "+"로 반복해서 더하는 연산을 어떤 경우에 컴파일러에서 자동으로 최적화해주는지 알고 있다면 보다 융퉁성 있게 쓸 수가 있습니다.

몇년전에 javaservice.net에서의 String vs StringBuffer에 대한 논의에서도 이 이야기가 오고 갔었고, 그를 통해 제가 알게 되었던 바는 다음과 같습니다.

  1. 한줄에서 상수 String끼리만 더하는 것은 모두 합쳐진 문자열로 바꿔준다. 즉 String a= "a" + "b" + "c"; 라고 쓰면 String ="abc"; 로 알아서 컴파일해준다는 거죠.
  2. 한줄에서 상수와 다른 String 클래스를 더하는 것은 StringBuffer의 append, toString 메서드를 쓰는 코드로 준다. jdk 1.4 javadoc 의 StringBuffer API설명 에 명시되어 있네요.

String buffers are used by the compiler to implement the binary string concatenation operator . For example, the code: