본의 아니게 다음 행선지가 뷰로 개발하는 곳으로 이동하기 때문에 뷰를 조금씩 보고 있다. 항상 스탠바이라고 말은 하지만 막상 또 시작하면 잘 생각이 안날수 있는 부분이 많아서 공부를 위해서 유데미 강의를 결재해서 정리하고 있다. 뷰는 참 특이한 놈이다. 투바인딩도 아닌데 투바인딩처럼 작동하는 것 같다. 변경된 부분만 작동하는게 참 독특하다. 1. 뷰만에 바인딩 기법 - v-on:input 같은 예약어를 사용하면 input에 이벤트를 걸 수 있다. input 같은경우에는 함수명()를 쓰지 않고 '함수명' 만으로 on을 걸어야 하는데 기본적으로 인자가 숨어있어 함수명($event) == 함수명 이건 같은 의미이다. 만약 인자가 두개라면 명시적으로 함수명($event, 1) 이런식으로 넘기면 된다. 참 독특하..
오늘은 날씨가 꽤나 쌀쌀하다. 그래서 옷을 단단히 입고 왔어야 했는데 얇게 입고 와서 굉장히 춥다. 하지만 어쩔 수 없다. 그냥 이렇게 버텨야 한다. 킥보드를 타고 노량진역까지 가는건 겨울에 곤욕이다. 하지만 깝깝하고 더운것보다 추운게 낫다. 그래서 항상 주변에 킥보드가 있으면 타고 노량진역까지 가곤 했다. 생각해보면 휠씬 이득이다. 일단 시간이 굉장히 10분정도 단축된다. 빨리 도착한다. 신호동만 없으면 쾌속 질주이다. 그래서 막힘이 없다. 막히면 진짜 짜증난다. 서울 시청역쪽에 도착하면 바로 아아를 하나 시킨다. 아아는 보통 보세 싸구리를 시킨다. 사실 메이커나 보세 차이보다는 맛있는 쪽을 선택하는 편이다. 사무실에 올라와서 커피한잔하고 바로 오늘 할일에 대해서 정리해 본다. 사실 그렇게 집중해서 하..
프리랜서 일을 시작한지도 벌써 4개월이 지나고 있다. 원래는 제계약 해야 하는데 그러지 못한다. 그래서 분위기가 싸하다. 뭔가 다 해줬는데도 싸한 느낌은 나만 그런가? 암튼 하기 싫은일을 전에는 꾸역꾸역 참고 해줬지만 지금은 거부한다. 자기계발서에 보니 거절할줄 용기도 필요하더라 그런데 거절도 방법이 있다고 한다. 점심에 틈나서 잠깐 서점에서 읽은 내용인데, 바로 무언가 상대방이 요청이 들어오면 질문을 던지라는 것이다. 질문을 던지다 보면 왜 그걸 도와줘야 하고 내게 얻는 이점이나 낭비되는 시간 그리고 배려심 같은것들을 종합적으로 생각해서 가장 효율적인 선택을 할 수 있다고 한다. 그래서 이제는 나도 실천해 볼려고 한다. 누군가 부탁할때 되묻는 연습 말이다. 연습을 계속 하고 훈련해야 말하기나 쓰기는 향..
백은정 작가 라는 분이 쓰신 책인데 디자인이 이쁘고 모텔이라는 주제로 낫설고 뭔가 재미날거 같아서 읽어 봤는데 역시나 너무나 재미나다. 이 책을 쓴 모텔 경영자는 7년이라는 세월동안 산전수전 모텔에서 겪은 이야기를 재미나게 풍자했고, 이를 스토리텔링해 글로 표현한 부분이 나를 흥분 시켰다. 처음부터 끝까지 지루함없음, 재미와 즐거움 이 밀려 왔고 또한 힐링도 되어 매우 흥미롭게 읽었고 시간을 순삭해 주어 주말을 잘 보낼 수 있었다. 모두 기회가 된다면 꼭 사서 보길 바래요. https://www.yes24.com/Product/Goods/122338556
안녕하세요 간만에 글을 남기네요 요즘 스터디에서 과제를 풀고 있는데 이제까지 진행상황을 공유할까 합니다. 소스 위주로 갈 예정이고 아래는 실행환경 입니다. 언어 : java 프레임워크 : 스프링부트 3.0, 스프링6, Spring-Data-JPA 툴 : intellij 엔티티 구성부터~ 서비스 로직까지 보여주고, 어떻게 테스트 했는지 공유 하겠습니다. 결론부터 말씀 드리면, 어플레케이션 낙관적 락과 비관적 락, DB 레코드 락, DB 낙관적 락(조건) 등을 테스트 하는데, 비관적 락과 DB 레코드 락, DB 낙관적 락(조건)은 모두 성공했지만, 낙관적 락은 Entity에 @Version 컬럼을 추가해서 테스트 해 보았지만 리트라이 조건을 제대로 하지 않아서 그런지 계속 실패 했습니다. 나중에 성공하면 이..
안녕하세요 자바로 와스를 구축하고 웹 서비스를 하게 되었을때, 캐싱을 하지 않으면 메인화면이 넣게 뜨거나 빨리 떠야 하는 화면들이 늦게 뜨는 현상들이 생길 수 있는데 그럴때 아래와 같이 조치를 하면 극적인 속도를 연출할 수 있어요! // 컨트롤러 import org.springframework.http.CacheControl; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.concurrent.TimeUnit; // Res..
배운점 버전 의존성, springboot3를 사용한다면, mybatis도 3으로 맞춰야 함. DDL 생성시 TB_ prefix 붙이기, 예약어 충돌 에러 남. 설정 gradle implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' implementation group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', versi..
오늘은 아이폰 개발하는 방법에 대해서 설명해 드릴려고 한다. 아이폰 개발에 벽은 상당히 낮아진 것 같다. 예전에는 언어 자체가 희귀해서 자료도 없고 검색도 안되서 어려웠지만 이제는 누구나 할 수 있는 언어인 swift가 나와서 상당히 벽이 낮아진 것 같다. 그래서 나도 한번 해보자. 라는 생각으로 전에 사났던 동강을꺼내서 공부해 보기로 했다. 물론 동강은 앨런님에 강의를 듣는데 평생인줄 알았더니 기일이 있는거라 얼릉 보고 자료도 따운받아나야 겠다라는 생각이들었다. 치사빵꾸다 계속 무료로 해주지 ㅠㅠ 일단 각설하고 이제 초기 프로젝트를 만들면 속성들을 조금 건들어 주는게 좋다. 아래와 같이 최서버전은 13으로 그리고 가로세로 전환이 안되게 막아 두는게 좋다고 하여 일단 따라해서 셋팅해 보았다. 처음 언어나..
AuthenticationProvider found for org.springframework.security.authentication.UsernamePasswordAuthenticationToken 당황스럽다. 로그인 시도하면 위와 같은 에러가 나면서 실패한다. 왜 일까? 서치, ChatGPT 도움을 받을려고 했으나 모두 실패다. 디버깅을 할 수 없이 하게 됐고, Provider 쪽에서 UserService주입이 안되어 나오는 현상이였다. 아래 코드에서 수정본을 올려본다. SpringSecurity Config package com.shop.shop.config; import com.shop.shop.service.MemberService; import lombok.RequiredArgsConstru..
삽질을 너무 많이 했고, chatgpt나 인터넷 검색 자료는 모두 죄다 어뎁터 방식으로 붙이는 식이더라 그래서 아에 그냥 내가 해보고 정리하자는 차원에서 공개합니다. 모두 삽질 없이 편안하게 짜시길 바랍니다. gradle 설정 // 1. queryDsl version 정보 추가 buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'org.springframework.boot' version '3.1.2' id 'io.spring.dependency-management' version '1.1.2' // 2. querydsl plugins 추가 // id "com.ewerk.gradle.plugins.querydsl" version "1.0.10..
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |