목록분류 전체보기 (109)
Real Vectorism. 훨씬 더 입체적으로...
넥사같은 국산플랫폼을 이용할 바에 전자정부프레임워크가 훨씬 건전하고 표준지향적이고 전자정부프레임워크를 이용할 바에 퓨어 스프링을 전공하는게 훨씬 개발지향적이고 파워풀하다. 반박시 쳐맞음
트랜지션을 적용하려는데 계속 화면 단위로 터져버리는 경우 VScode 에서 svelte 의 transition 을 사용할 때 scale 등의 트랜지션 효과를 사용하려고 보면 꼭 transition 을 못찾는다고 화면 전체가 뻗어버리는 경우 혹시나 import { scale } from "svelte/types/runtime/transition"; 이렇게 선언되어있다면 import { scale } from "svelte/transition"; 로 바꿔서 확인해볼것. 엉뚱한걸 import 로 연결시켜버리는 버그인 듯 하다. 중첩 라우터가 제대로 연결되지 않는 경우 라우터를 설정하는 js 파일에서 가능하면 /route/** 와 같이 (마치 스프링처럼) 와일드카드를 2개를 적어 하위경로 전체를 매핑시켜주는 방..
스프링 6 나왔나보네 이제 최소 자바버전이 널뛰기 하나
어째서 도대체 왜 넥사크로를 배워야 하는가 제목 그대로다. 어째서 도대체 왜 넥사크로를 배워야 하는가를 분석하는 글이다. 필자 왈왈, 현존하는 프로그래밍 툴 중 정말 최악의 쓰레기인데도 왜 써야 하는가를 논하는 글이다. 이 글은 투 grast.tistory.com 하트가 200개를 넘어갈까 엉??
유니티 2020.3.12f1 버전 기준으로 하이라키에서 마우스 우클릭으로 UI > Slider 를 신규로 추가하려면 컨텍스트 메뉴에서 UI 자체가 사라져있다. 그 대신으로 빈 오브젝트를 만든 다음 Slider를 컴포넌트로 제공한다. 1년 전에 게임이랍시고 뭔가 만들어보려고 아등바등했던게 절실해서 기억하고있었던 컴포넌트 사용법이었는데 아무래도 바뀐 모양이다. 빈 오브젝트에 컴포넌트 형식으로 슬라이더를 추가해야한다. 그리고 Fill과 Handle 오브젝트도 별개로 전부 오브젝트를 만들어줘야하고 슬라이더 컴포넌트에서 Fill과 Handler를 연결시켜주는 방식이다. 왠지는 모르겠지만 파업이라도 한건지 꼴사나웠던 탓인지 디폴트로 컴포넌트를 제공하지 않게 되었다.
1. 피보나치 50번째 항은 int 타입을 벗어난다. (오버플로) 2. 재귀함수 구현시 피보나치 50번째 항 이전에 메모리가 터진다 3. 피보나치 수열의 일반항 구하는 식은 미쳤다... 피보나치(Fibonacci) 수열의 일반항 구하기 문제 계단을 한 칸씩 오르거나 두 칸씩 오른다. 칸의 개수가 20인 계단을 오르는 방법의 수를 구해보자. 풀이 칸의 개수가 $n$일 때 오르는 방법의 수를 `a_{n}`이라고 하자. `a_{1}=1`,`a_{2}=2`,`a_{3}=3`임 suhak.tistory.com 프로그래밍 수학 함수는 알겠지만 한번이라도 float 영역으로 넘어가버리면 다시 int 타입으로 넘어가는동안 필수적으로 손실이 발생한다...... 따라서 Math.sqrt를 한번이라도 활용하는 순간 소숫점 ..

원본 및 레퍼런스: https://lts0606.tistory.com/category/Spring%20Webflux 'Spring Webflux' 카테고리의 글 목록 Hello world! lts0606.tistory.com 1. 먼저 메이븐에 WebFlux 계열 추가 org.springframework.boot spring-boot-starter-webflux 2. 회원정보로 사용할 클래스정보 신규추가 class SeumUserDetails { private Integer idx; private String username; private String password; // 이하 getter, setter, toString // 개인적으로, 롬복 진짜 시름. 절대로 안씀 // 람다식에서 메소드체이닝으로..
웹플럭스 버전 2.5.2 어지간한 검색결과에서 나오는 실시간 방출대응으로 검색되는게 거의 EmitterProcessor 인데 이거 Deprecated 걸렸다... Sinks.Many로 교체하라는데 소스코드가 거의 EmitterProcessor 를 사용하는 소스코드에서 호환될 기미가 안보인다. 검색으로도 안나온다... EmitterProcessor.sink() 도 Deprecated 걸린건 매한가지라 소스코드가 사실상 검색으로 나올만한 예제가 없다...
Mono와 Flux가 1개와 N개인거? 1번과 N번인거?
아직 웹플럭스는 포기하지 않았다. 그런데 ReactiveUserDetailsService 를 구현하다가 문득 생각이 들었다. 혹시나 Mono findByUsername(String username) 메소드를 작성하는 과정이 무슨 차이가 있을까 public Mono findByUsername(String username) { return Mono .just(username) .map(item -> (UserDetails) seumUserRepository.findOne(Example.of(new SeumUserDetails(item)))) .switchIfEmpty(Mono.error(new Exception())); } public Mono findByUsername(String username) { r..
엉엉 마이바티스 R2DBC 나오기전까진 R2dbcRepository 안쓸꺼야... UserDetails 구현하면 aithorities가 Collection 타입으로 고정되어버리고 User 상속하면 생성자에서 username password 널체크를 회피할 수가 없고... 안해 쉬펄...!!
WebFlux가 나오면서 자연스럽게 알게 된 R2dbc가 나온지는 나름 시기가 좀 쌓인것 같은데 처음봤을때 좀 웃겼다. 학교에서 JSP를 배웠을 당시 톰캣에서 집중적으로 들어오는 요청을 효과적으로 처리하기 위해 Connection Pool을 미리 만들어서 대응한다는 개념. 알고보니까 Connection이 많아도 DB 그 자체에서 싱글스레드로 처리해버리면 의미가 없던거(...) 뭐 그런 문제 뿐만이 아니라 이제는 데이터가 실시간으로 변경되고 생성삭제되는것까지 체크할 수 있는 영역으로까지 개념이 확장되면서 WebFlux + R2dbc가 꽤 재밌는 콤비가 된다는 이야기도 들었던것 같은데 아직까지 스프링부트에서 써먹기에는 R2dbcRepository와 QueryDsl이 너무 짜증난다. 아직까지도 JP..
당분간은 백엔드 본질에만 집중하는걸로...
아몰라 찾는사람도 없는 업데이트(...) 업데이트 내용 랭크게임 해금조건 완화(플레이카운트 100에서 50, 클리어한 미션 65에서 35로 낮춤) Shooting Paradigm 2 - Google Play 앱 오브젝트를 움직여 40초간 탄환과 부딛치지 않고 살아남아보세요 play.google.com
뭔가 어제까지 잘 돌아가던 프로젝트가 갑자기 빌드오류가 계속 뜨길래 뭔가 했더니 무슨 npm audit으로 오류가 떠서 확인해봤더니 vite에 취약점이라도 생긴건가 강제 업데이트를 하면 기존에 1버전대 쓰던게 무려 2버전대로 넘어간다. 확인해보니 1에서 2로 넘어가는 과정 중에서 마이그레이션을 수동으로 해줘야하는 기능들이 있다고... 한글 번역도 찾는게 전혀 안되고 있고 작업이 얼마나 가게 될 지 몰라 한동안은 vite 1.0.0-rc.13 이었나 이걸로 계속 쓰고 한글 마이그레이션 가이드 나오면 그때 옮기던가 해야겠다.
0. 스프링 부트 프로젝트 생성 1. 메이븐에 다음 종속성을 추가. (예시는 마리아DB, 현재 각 데이터베이스 별로 R2DBC 지원여부가 다를 수 있으니 사용 전 확인필요. 오라클은 검색결과 아직 대응중인듯.) org.springframework.boot spring-boot-starter-data-r2dbc 2.4.4 org.mariadb r2dbc-mariadb 1.0.1 2. application.properties 에 다음과 같은 프로퍼티 추가 jdbc 방식 (R2DBC를 사용할 경우 추가할 필요 없음) spring.datasource.driver-class-name=org.mariadb.jdbc.Driver spring.datasource.url=jdbc:mariadb://{host}:{port..
카카오 사직서 서명은 공동인증서로
0) npm 설치 1) 기본작업 (시작 >> cmd 검색 후 명령 프롬프트) npm install -g vue@next npm install -g @vue/cli 2) 원하는 폴더에 워크스페이스 생성 후 주소창에 cmd를 입력해서 해당폴더를 위치로 하는 명령 프롬프트 실행 npm init vite-app (프로젝트이름) 몇몇 예시는 vue create (프로젝트이름) 으로 진행하던데 vue 1, 2 에서는 몰라도 vue3 공식문서는 npm init vite-app 으로 설명하고 있어서 vue create 는 여기에서는 언급하지 않겠음. 솔직히 vue 프로젝트가 만들어지는것은 같고 기본파일들은 미묘하게 다른것 같음. 3) 프로젝트 생성 후 다음 작업 cd (프로젝트이름) npm install npm run..