분류 전체보기

요약chatGPT는 무료로 제공하는 기능이 제한적이다.Gemini 의 Imagen3 가 chatGPT보다 그림을 잘 그려주더라.Gemini는 무료로 거의 무제한으로 쓸 수 있고, 연동도 아주 간편하다. Why Gemini?개인 프로젝트에서 LLM 연동을 해보고 싶어서 서치를 해보던 중...당연하게도 LLM의 대명사격인 chatGPT를 알아보았다.근데 웬걸? 무료로 거의 사용하지 못하고, 카드 등록을 하고 과금을 해야 뭔가 유의미한 결과를 만들 수 있을 것 같았다... 그래서 요즘 개인적으로도 자주 쓰는 Gemini API를 검색해보았다.근데 웬걸? 무료로 거의 무제한으로 쓸 수 있는 게 아니겠는가?? 그림 실력 비교 chatGPT vs. Gemni그림 그리기 대결도 시켜봤는데,Gemini의 Imagen3..
· 코딩/Java
요약Date 와 LocalDateTime 은 날짜와 시간까지 포함.LocalDate 는 날짜까지만 나타냄.Date는 Timezone 정보가 UTC로 고정이지만, LocalXXX 는 Timezone과 무관하게 일시 정보만 표현한다.Timezone 정보를 포함하는 ZonedDateTime이 있다. Date 의 단점(우리 회사 이거 쓰고 있다.)Java 초기 버전부터 사용된 전통적 타입이다.시간대는 UTC로 고정이다.(협정 세계시)하지 "만" 여러 문제 때문에 권장되지 않는다.월이 0부터 시작이다.년도는 1900년부터 시작이다.먼 소린고 했더니,new Date(100,0,1) 라고 하면, 2000년 1월 1일이 된다.가독성도 떨어지고, 내부 메서드들도 직관적이지 않다. LocalDate 와 LocalDateT..
· 코딩
꿈 없는 비전공자, 개발의 길을 걷기 시작하다?고등학교 때 나는 평범한 성실한 학생이었다.그리고 평범한 학생답게 꿈이 없었다. 공부는 그래도 잘 해서 대학도 잘 갔다.대학에 가서는 열심히 놀았다. 학점도 그닥인데 눈은 높았어서,나름 취준은 했지만 한 20개 기업에 모두 떨어졌다.그리고 SSAFY(코딩 부트캠프)에 운 좋게 합격했다. 뜬금 없이 왜 지원했는가?특별한 이유는 없었다.그냥 내 평생 직업으로 전공 관련 직업을 선택하고 싶지는 않았고,그러던 차에 우연히 비전공자도 개발자가 될 수 있다는 공고를 발견했고,"내가 개발자가 된다면?"이라는 뜬금 없는 상상이 오히려 날 더 가슴뛰게 했기 때문이다.그냥 그 뿐이다...그리고 진짜 내가 가슴이 뛰었으니까, 그 마음이 전달돼서 합격한 게 아닐까 싶다. 개발이 ..
RestTemplate deprecate?? 구글링을 하다보면 “RestTemplate은 Deprecate될 예정이니 WebClient를 써라”라는 말을 심심치 않게 발견할 수 있다. 실제로 Spring 공식 깃에 들어가서 커밋을 보면 2018년 7월 27일에 rstoyanchev 라는 분이 javadoc에 아래와 같은 내용을 남겼다. future version에 deprecated 될 것이니, 더 modern한 WebClient를 사용해달라는 메세지이다. 하지 만?! 2020년 2월 11일에 다시 본인이 내용을 수정했다. deprecate한단 말은 지우고, maintenance mode가 된다는 말로 수정했다. 이를 두고 토비님은 처음엔 WebClient를 밀어서 RestTemplate을 depreca..
개요 이 글은 Java 문법이 익숙하고 Kotlin 문법이 헷갈리는 사람(나)를 위해 정리한 글이다. 아주 빠르게 훑어보자 변수 val a = 10 // Int 로 타입 추론 var b = 10 b = 20 // var 변수는 재할당 가능 null var x: Int? = 10 x = null // ? 는 nullable 타입 ?. !!. var str: String? = null println(str?.uppercase()) str = "abc" println(str!!.uppercase()) function fun add(x: Int, y: Int): Int { return x + y } fun add(x: Int, y: Int) = x + y // 리턴 타입 생략 + 한 줄 표현 기본 자료형 숫자형..
· 코딩/Java
Java - Predicate 👶 Predicate란? 오늘 코드분석 도중 Predicate라는 인터페이스를 만났다. 초면이었다. Java 1.8부터 도입된 함수형 인터페이스이다. 제네릭 타입 하나를 매개변수로 전달받아 특정 작업 수행 후 boolean 타입을 반환하는 작업을 수행하게 한다. 🧭 함수형 인터페이스 = SAM Interface (Single Abstract Method) 함수형 인터페이스란, 하나의 추상 메소드를 갖고 있는 인터페이스를 말한다. Java8부터 지원된 람다는 함수형 인터페이스로 접근 가능. Predicate 외에도 Consumer, Supplier, Function, Comparator 등이 있다. 추가로, @FunctionalInterface 어노테이션을 사용한다. (없어도..
[10분 테코톡] 🔧알트의 XSS 0. XSS란? XSS는 Cross-Site Scripting의 약자이다. XSS 공격은… 가장 널리 알려진 웹 보안 취약점 중 하나. 사이트에 악성 스크립트를 삽입하며 악의적으로 공격하는 것. XSS를 통해 C&C(좀비 PC에 명령을 내리거나 악성 코드를 제어하는 서버)로 리다이렉트하거나, 사용자의 쿠키를 탈취하여 세션 하이재킹 공격을 할 수 있다. 대표적 공격 방식은 아래 세 가지가 있다. Stored XSS Reflected XSS DOM Based XSS 1. 대표적 XSS 공격 방식 (1) Stored XSS 가장 흔히 예시로 소개되는 방법이다. 공격자가 서버에 어떤 스크립트를 저장한다. → 이후 서비스를 제공하는 정상 페이지에서 다른 사용자들에게 이 스크립트가..
WebClient에 대해... WebClient가 단순히 RestTemplate를 대신해서 사용하는 기술이라고 생각하면 나와 같은 문제를 겪을 수 있다… 물론 RestTemplate이 장기적으로 Deprecate될 예정이고, WebClient는 RestTemplate이 제공하지 않는 논블로킹을 지원하기 때문에 WebClient를 사용하는 편이 좋다는 것도 맞다. WebClient의 반환 타입, Mono와 Flux RestTemplate은 바로 Http의 응답인 ResponseEntity를 반환하는 것과는 달리, WebClient의 요청은 Mono 나 Flux를 반환한다. 하지만 RestTempltae의 ResponseEntity를 확인하면(디버거로 체크, 혹은 log로 찍어보면) 응답 값이 잘 나오지만,..
개요 서버 to 서버로 HTTP 요청을 보내는 방법으로 RestTemplate과 WebClient가 있다. Spring 5.0 이전까지는 RestTemplate을 사용했으나, 5.0에서 WebClient가 나왔고, 현재는 WebClient 사용을 권고하고 있다. 대세는 WebClient이고, 추후 RestTemplate의 지원을 중단할지도 모르기 때문에… 현재 대체로 WebClient로 마이그레이션 하고있는 추세라고 한다. WebClient vs RestTemplate 위 글은 RestTemplate과 WebClient에 대해 다루고 있다. 요약: RestTemplate은 아직 사용 가능하다. 단, RestTemplate은 synchronous하고 blocking한 반면, WebClient는 asynch..
@PathVariable은 마지막 “~.com”이 짤린다? 인생 첫 이슈를 받아서(ㅋㅋ) 개발하는 과정에서 @PathVariable로 도메인 문자열을 받아오는데, jsw.com 과 같이 받아오면 디버거에는 jsw만 찍히는 현상이 발견됐다. 알아보니… Spring은 마지막 점 뒤에 있는 모든 것을 파일 확장자로 간주한다고 한다. (단, PathVariable이 가리키는 {무언가}가 URI의 마지막에 있는 경우이다!!) 해결 방법 https://recordsoflife.tistory.com/488 위 포스팅에 따르면 해결 방법은 크게 세 가지가 있다. 1. {변수명:.+} / {변수명:.*} @GetMapping("/init-configuration/{domain:.+}") public boolean ini..
승농
'분류 전체보기' 카테고리의 글 목록