기본 콘텐츠로 건너뛰기

2024의 게시물 표시

개발 공부 - Thymeleaf

https://www.bubblecat.co.kr/2022/11/web.html 위 글 이후로 오랜만에 템플릿 엔진 관련 글을 쓴다. 타임리프를 사용한 프로젝트를 하나 끝내고 쓰는 회고이다. 최종 안내를 마치고 간단하게 정리하는 목적 및  열정 있게 블로그를 쓰는 나의 모습을 느끼기 위함이 기재 목적이다. https://www.thymeleaf.org/ 타임리프는 자바 기반의 서버 사이드 템플릿 엔진이다. 두괄식으로 타임리프의 장점을 요약하자면 1. 템플릿 엔진의 자연스러운 사용  2. 표현식의 강력함 3. 다양한 기능 지원 4. 스프링과의 통합 을 장점으로 말할 수 있다. 타임리프는 Spring 기반 프로젝트일때 주로 사용을 하는데, 레거시보다는 부트 기반으로 많이 쓰는 것 같다. (개인 체험) 기본적으로는 HTML 형태를 유지하면서 동적인 웹 페이지를 생성하는 것이 목적이다. [템플릿 자체를 브라우저에서 직접 열어도 문제가 없다는 것이 큰 장점이다.] 1. HTML 파일을 그대로 유지해서 브라우저에서 직접 열 수 있도록 지원한다. : 협업도 용이하게 하는 것이 목표이다. 2. 서버 사이드의 데이터를 조작하기 용이하도록 표현식 문법을 지원한다. : 아래와 같은 형식이다. 변수 표현식: ${...} 선택 변수 표현식: *{...} 메시지 표현식: #{...} 링크 표현식: @{...} 조각 표현식: ~{...} 3. 자체 태그를 정의할 수가 있어서 확장성이 좋다. : div 내에 th: 로 시작하는 것을 볼 경우에는 타임리프일 확률이 크다. 재사용 목적으로 템플릿 조각을 사용할 수 있는 기능을 제공한다. 반복문/조건문도 each/if 등을 지원해서 동적 컨텐츠 생성 시에 도움이 된다. 4. Spring 에서 사용하기가 좋다. 5. 다국어 지원이 가능하다. (유지보수 시에 굉장히 많이 확인 필요! 서버가 바라보고 있는 message가 1개가 아닐 수 있다!!!! 숙지!!! 디버깅 시 확인 필요!!!!) : messages.properties 같은 경우가 타임리

개발 용품 - 폴리머 클레이로 키캡 만들기 ver. 3

개발 용품 - 폴리머 클레이로 키캡 만들기 ver. 1 위 글 이후로 ver. 2가 없는 이유는 잘 만들어져서 나눔을 했기 때문입니다. 굽기 전에 손 안 닦고 조금 비볐더니 입가가 누리끼리한 다람쥐가 되었습니다. 아무튼 딱딱한 폴리머 키캡 대신 천사점토로 본을 뜨고, 레진을 부어서 만드는 방식으로 진행을 해보려고 하기 전에 남은 폴리머 클레이 소진 용도로 사용해야겠습니다. 어쨌든 도구 없이 손으로만 만들었더니 투박한 뚱뚱 다람쥐가 된 결말입니다. 240612 : 다람쥐를 만들었습니다. 240613 : 하늘색 강아지를 만들었습니다. 240614 : 하늘색 다람쥐를 만들었습니다. (다이소에서 베이킹용 조각칼도 사 왔습니다.) 얼굴 디자인을 못 해서 고민하며 선택 중 입니다. 240627 : 16일에 주문한 레진&실리콘이 아직 안 와서 도베르만을 못 만들고 있습니다. 주문하는 김에 퍼티랑 스컬피도 조금 주문했지만 여전히 배송이 안 왔습니다. 새로 산 것은 인증을 받지 않은 물건이라 마스크 & 장갑 끼고 사용해야 할 것 같습니다. 240703 : 배송이 와서 실리콘 몰드 떠 봤습니다.  240704 : 몰드에 레진 + 반짝이 섞어서 부어 봤습니다.

개발 공부 - 대학교 onedrive 지원 종료 (2024/6/5)

개인 공부 - 방송통신대학교 성수(뚝섬) 와이파이 접속 방법 (2024년 4월 21일 기준)

홈페이지 내 무선랜 접속 방법과 현재 사용법이 달라서 추후 사용 목적으로 블로깅한다. 예전 : 1. U+zone / lguplus100 2. KNOU / 홈페이지 아이디 & 비밀번호 ※ U+zone은 잡히는 경우도 있다고 한다. 현재 (2024-04-21) :  1. 비밀번호 있는 것 : KNOU_GUEST_WiFi 2. 비밀번호 없는 것 : KNOU_WiFi / 홈페이지 아이디 & 비밀번호 3. 연결은 되는데 엄청 느린 것 : eduroam / 홈페이지 메일 주소 & 비밀번호 ※ 에듀롬은 6층에서는 비추천이다. 불편하지만 위와 같이 수업 가기 전 벽보를 잘 읽어보고 상태 확인을 해야 잘 쓸 수 있다. WIFI가 아니라 WiFi 가 학교에서 제공해주는 와이파이명이다. 또한, 윈도우 노트북도 정상적으로 3개 다 인터넷 잡히는 것 확인했다. KNOU_WiFi를 사용하는 것을 추천한다.

개발 공부 - 아이폰 15분 비활성화시 시간 안 지나는 현상

※ 해결 방법 : 껐다 켠다.  길을 걷는데, 갑자기 휴대폰이 잠겨버렸다. 1) 아이패드도 잠김 2) 휴대폰 잠김 3) 15분 뒤 풀린다고 하는데 2시간이 지나도 풀리지 않음 근처 PC방에 가서 검색을 해보니 껐다 켜라고 한다. 껐다 켰더니 15분의 시간이 지나기 시작했다. 15분 지난 뒤, 해킹을 당한 것을 확인했다. 1. 다행인 점 1) 나는 지인 및 업무 관련자들의 휴대폰 연락처를 잘 저장하지 않는다. (외우거나 카카오톡에 기재) - 따라서 해킹 당해도 지인 피해는 없을 것 2) icloud를 사용하지 않아 개인 정보가 노출이 안 된다. 2. 불행한 점 1) onedrive에 엮여 있는 것이 많아 걱정이 된다. (공부 자료가 대부분이지만...) 2) 은행 등 앱 새로 까는 것이 지옥이다. 3. 의문의 점 1) 왜... 휴대폰을 맡겨야 하는지 잘 모르겠다... 일단 맡기래서 맡기고 임시폰(?)을 받았는데 요상한 것이다. 이러한 이슈로 당분간 임시(대여)폰 사용중인 나. 왠지 AS 갔다 와도 앱 새로 다 깔아야 할 거 같다는 생각을 한다. 빠른 후기 : 일본에서 구매한 거라 일본에 다녀와야 한다... (알 수 없는 애플케어) 제일 싼 새벽 비행기로 왔다 갔다 할 예정...ㅠㅠ 토요코인 예약 & 제일 싼 비행기로 왕복해야 해서 조금 슬픈 수리 여행기 후기 : 이걸 고쳤더니 갑자기 밝기 오류가 나는데, 어떻게든 해결 해 본다... 자동 밝기 조절 같은걸 평생 안 썼는데 저거 하나 하니까 오류 엄청 난다...  15 프로 제대로 안 만들었는가...

hold - 상 중

외삼촌 상 중이라 답신이 많이 늦습니다. 당일에는 연락 받고도 억지로 업무상 회의를 나갔는데, 생각이 하나도 안 나고 세상이 뿌옇고 사람 구실을 못 할 거 같아서 상 끝나고 회신 하겠습니다.

개발 공부 - 개발 관련 서적 읽기

요즘 외주 작업 하면서 공부 할 수 있는 기간이라, 개발서 매일 꼬박 읽기를 시작한다. 사실 개발자로서 밸런스를 맞추고자 공부용 서적 1권을 읽으면 그 외 서적도 1~2권 정도 읽었는데, 오늘부터는 집중을 해서 탐독을 해 보도록 한다. 아직 마음에 드는 이북 단말기를 못 샀기 때문에 도서관에 들어오는 것 중 연관된 것을 읽어보는 것부터 시작하기로 한다. 추후 읽을 서적들은 교보문고에서 추천 해 놓은 꾸러미 중에 읽어 보는 것으로 하겠다.  코딩 테스트 풀이는 잔디 심기로 의무적으로 하는 것 외에 private으로 집중하면서 하고 있는 것이 있어서 블로그에 기재는 안 하지만 프로그래머스에 지속적으로 새 문제가 올라와서 꾸준히 푸는 중인데, 책 읽기는 부담스럽지 않게 필요한 부분 기재하면서 블로깅도 해보려 한다. 요즘 개발자를 만나면, 종종 무슨 책 읽고 있냐고 물어 보시기에 Code 책 이야기를 하면 호불호가 갈리는 모습을 보고, 다양하게 읽어 보려고 하지만 빌려온 것 자체도 내 취향만 대출 해 온 것 같아서 뜨끔하다. 2판이 나오고 절판된 Code 번역본이다. 초판을 사서 10년 넘게 가지고 있지만 종종 읽어보게 되는 나의 가이드북! (재미는 없으나) 가끔 지칠 때 도움이 되는 책이다!

개발 공부 - API 해킹의 모든 것 (2024-04-01 읽는 중)

개발 공부 - 강동도서관(gdlib) 인터넷 (wifi) 사용 방법

개발 서적이 들어왔길래 빌리러 도서관에 갔다가, 외주 협의 건이 생겨 자율학습실을 이용했다. 인터넷 사용 관련 사항이 어디에도 없어 테더링을 물려서 사용했으나 인터넷 검색을 해보니 사용할 수 있기에 방법을 기재해 둔다. 방법 2를 해 보고, 안 될 경우 방법 1을 권장한다. ※ windows 10 기준 방법 1. 1. 제어판\네트워크 및 인터넷\네트워크 및 공유 센터 2. 새 연결 또는 네트워크 설정 3. 무선 네트워크에 수동으로 연결 4. 아래와 같이 정보 입력 후 연결 방법 2. 출처 : 강동도서관 무선 네트워크 설정 안내 설명 파일 다운로드

개발 공부 - JavaFX (exe 실행 파일 생성 문제로 진행 중)

 결국 java swing을 버리고 javaFX를 써보려는 나의 모습을 보이게 되었다. (근데 사실 awt랑 swing도... javaFX도 좀 별로인 거 같은...) https://openjfx.io/openjfx-docs/#gradle   이 사이트에 들어가서 설치도 하고 뭘 했는데, 결국 external libraries로 다시 불러와야 해서 sdk 는 삭제했다. 일단 이 JavaFX는 gradle.kotlin으로 하면 호환이 뭐가 안 된다 말이 많아서 groovy로 다시 변경해서 진행했다. https://www.youtube.com/watch?v=bRpGnCjJ0ro   위 유튜브 참조해서 설정 변경하고 진행했다. gradlew run! 하면 일단 실행은 되고, 누덕누덕 만든 소스로 exe 실행 파일을 만드는 작업이 또 한 참 걸렸다. fx:deploy is not available in this JDK 이 오류는 끔찍한 것! 구글링 해보니 자바 8 정도로 내리고 해보라고 해서 재시도하는 중이다. https://www.jetbrains.com/help/idea/javafx.html#create-project https://thinkerodeng.tistory.com/320 https://live-for-myself.tistory.com/124 https://www.youtube.com/watch?v=t1Ay3RcNJoE https://www.youtube.com/watch?v=hS_6ek9rTco https://streamls.tistory.com/entry/JAVA-Intellij-JavaFX-%EC%84%A4%EC%B9%98Java-11-%EC%9D%B4%ED%9B%84-%EB%B2%84%EC%A0%84%EC%9A%A9 https://johnmarc.tistory.com/100 일단 6시간 정도 투자해서 ↑ 이 걸 해 보았다. Java 11 javafx 19 launch4j 3.0.5 intellij 환경  정도로 동작 시키는 방법은 알아냈는데, 

개인 작업 - 이북 단말기 구매 (오닉스 페이지)

https://www.bubblecat.co.kr/2023/09/1-3_4.html   이 사건 이후로 일본어랑 영어 공부를 못 하고 있었는데, 회복이 99% 되어 공부를 다시 시작 한다!  progress bar 상태라면 ↓ 나의 안위 >>>>>>>>>>>>>>>>>>>>>>>>>>> 공부 (중지) 나의 안위(해결) <<<<<<<<<<<<<<<<<<<<<<< 공부 (재시작) 어쨌든 공부를 시작 할 땐 뭐다? 운동을 시작 할 땐 뭐다?               ╰(*°▽°*)╯ (●'◡'●)  돈 을   ♥   쓴 다 (❁´◡`❁)               (@^0^@)/ 그렇기 때문에 이북 단말기를 구매하려 했으나, 춘추전국 같은 제품군에 필요 기능을 요약 해 보았다. 1) pdf, txt 가 인식 되어야 한다. 2) word 도 인식 되면 좋다. 3) 필기 많이 쓴다. 4) 문제집을 풀어야 해서 국내 전자책 서점 되어야 한다. (drm 극혐!) 5) 화면이 눈이 안 아픈 해상도를 지원해야 한다. 6) 좀 튼튼해야 한다. 2) 빼고는 필수조건이다! 4) 가 좀 걸리긴 하는데, 이걸 만족 시키는 게 없어서 킨들 스크라이브를 보고 있긴 하다. 일단은 갤럭시 탭 흑백 필터로 공부 하고 있긴 한데, 이직 시 구매 예정이다!!!! 곧!!! 그런데 사실 전자책 단말기 카페에서 보면 보통 충족이 다 안 되어서 2~3개씩 사긴 하시는 것 같다. 나 책 엄청 보는데 좀 디톡스가 되길 바라며... 또한 구매 후 공유하지 않을 것인데, 구매 한 책 단말기에 넣게 어케 좀 해줘라!!!! 보안 회사 분들아!!!! 어케 잘 할 수 있잖아요!!!!!!!!  구매  29cm       오닉스 페이지     

개발 공부 - ㅎㅏㄴㄱㅡㄹㅇㅣ ㅎㅏㄴㄱㅡㄹㅈㅏㅆㅣㄱ (윈도우 한글 자모음 분리 현상)

윈도우 + . (마침표) = 이모지 창 한번 띄워짐 누르면 해결된다!!! 이 이슈 때문에 잠시 영어로만 쓰다가 찾아보고 한번에 해결! 출처 : https://junk-storage.tistory.com/62

사용 후기 - SKT 브로드밴드 사용기 (2015 ~ )

인터넷, 1999년부터 2015년까지 KT 외길 인생. (근성으로 16년 사용) 2015년부터 현재까지 SK브로드밴드 사용 중이다. 이 당시 KT가 7일에 한 번씩 끊기는 경험을 했고, LG는 싫어서 SK를 사용하게 되었다. (LG는 통신사 느낌이 한국 3위였기 때문에 사용하고 싶지 않았다.) 그런데 SK도 참으로 많은 수난이 있었다!!!!! 1) TV가 안 나와요. (빈도수 1위) 2) 인터넷이 안 되어요. (빈도수 3위) 3) 전화가 안 되어요. (빈도수 2위) 4) 인터넷은 되는데 사이트가 안 들어가져요. (2024-03-05~2024-03-08, 2024-06-29-2024-07-01) (빈도수 2회!) 불편이 큰 이슈대로 기재해 보았다. 신비롭게도 모든 해결이 모뎀 교체로 이루어진다. (기사님은 친절한데 모뎀이 똥인가 생각이 드는 것을 참을 수 없다.) 어쨌든 이 혼란스러움을 극복할 수는 없는데, 고장 및 교체 사유를 잘 모르기 때문이다. 1) TV가 안 나옴 - 기계로 테스트를 해 봄 - 모르겠음 - 모뎀 교체 - 해결 2) 인터넷이 안 됨 - 집 PC로 테스트를 해 봄 - 해결 안됨(신호가 안 온다고 하심) - 모뎀 교체 - 해결 3) 전화가 안 됨 - 테스트 안 해보고 모뎀 교체 - 해결  4) 인터넷은 되는데 사이트가 안 들어 가짐 - 집 PC로 테스트를 해 봄 - 모뎀 교체 - 해결 (의문) 5) 인터넷을 되는데 네이버, 사람인이 안 들어 가짐 - 집 PC로 테스트를 해 봄 - NAT 모드 때문이라고 하시며 공인ip 모뎀(2016년산)을 가져 오심 - 돌아가긴 하는데 엄청 느림 - 사설ip 모뎀(2023년산)으로 재교체함 - 해결 

개발 공부 - 공부를 위한 kafka 관련 회고

 오랜만에 면접을 보고, 거의 Producer 역할을 개발했던 Kafka에 대해 회고해 본다. 금일 면접은 퇴사 사유를 너무 정직하게 말해서 조금 반성하는 점이 있다. 그렇지만 계약 사항 준수는 중요하다고 생각하고... 사실 거짓말 해도 인사팀끼리 커넥션을 통해 진실을 알지 않을까? 싶어서 정직하게 말했다... (그러나 Kafka 관련 회고를 할 수 있어서 좋은 경험!) 어쨌든 카프카의 중복 컨슘 에 관해 면접 질의가 와서, 회고 및 부족 사항을 R&D 해보기로 했다! 퇴사한 회사에서는 MSA 구조 내에서 해결 할 수 있는 방식이었는데, Kafka 단독으로 할 수 있는 방식이 구글링하니 많이 나와서 알아두기로 했다. 일단 트렌디하게 chatgpt에게 외주를 줘본다.

개발 공부 - @Transactional, @Propagation

 @Transactional 어노테이션을 붙이면, 해당 메소드/클래스의 메소드가 트랜잭션 처리를 받을 수 있게 해준다. 일반적으로 @Transactional 어노테이션을 붙이지 않으면, 각각 메소드 호출이 자신만의 트랜잭션을 가지게 되어, 메소드 호출이 별도 트랜잭션에서 동작하게 된다. 따라서 만약에 여러 개 메소드를 호출하는 중에 오류가 발생하면, 발생한 지점 이후 작업은 롤백되지 않고, 이전에 정상 완료 된 작업들은 영향을 받지 않는다. 그런데 @Transactional 어노테이션을 붙이면, 해당 메소드나 클래스들의 메소드가 하나의 트랜잭션 내에서 동작하게 된다. 따라서, 여러 개의 메소드를 호출 하는 도중에 오류가 발생하면 해당 트랜잭션 전체가 롤백되어 모든 작업이 이전 상태로 복원된다. 동작 예시를 몇 개 들면 아래와 같다. test1() -> testRepo1() @Transactional 이 2개 다 적용 됨 test1()이 끝날 때 testRepo1()에 대한 것이 같이 동작함 만약 testRepo1()에 오류가 나면 test1()도 롤백됨 test2() -> testRepo2() @Transactional이 testRepo2()에만 적용 됨 test2() 메소드에서 testRepo2()를 호출해도 testRepo2() 메소드가 별도 트랜잭션임 testRepo2()에서 예외가 발생해도 test2() 메소드는 롤백되지 않음  test3() -> testRepo3() @Transactional이 test3()에만 적용 됨 test3()에서 testRepo3()을 호출해도, testRepo3() 메소드는 새로운 트랜잭션 없이 실행됨 testRepo3() 을 호출한 뒤에 오류가 발생하면, test3() 의 트랜잭션 안에서 testRepo3()이 호출되었기 때문에 롤백됨. test4() -> testRepo4() @Transactional 이 2개 다 없음 두 메소드 서로 트랜잭션 없이 실행됨 예외가 발생 시에는 해당 메소드 내에서만

개발 공부 - github 잔디 날짜 변경 방법 (n day ago, 날짜 지정)

github에 잔디 심기를 하다가, 간혹 12시가 넘어서 날짜 안에 못 커밋 한 적이 있다! 그럴 때는 간단하게, 1. git add . 2. git commit --date="1 day ago" -m "커밋 메시지" 3. git push 하면 해결이 된다.  저렇게 n day ago 같이 쓸 수도 있고, git commit --date="2024-02-23 12:00:00" -m "커밋 메시지" 와 같이 YYYY-MM-DD HH:MM:SS 형태로 날짜 지정해서 커밋 해도 된다. 그리고 나서 바로 날린 커밋 메시지 내용을 수정하려면 ↓ 이렇게 하면 되고, git commit --amend -m "새로운 커밋 메시지" git push --force origin <브랜치 이름> hash 값이 수정되므로 force push 를 해 줘야 한다. 그러나 사실 매일 커밋 하는 게 목표이므로 잘 쓰지 않는 것으로...ㅎㅎ

사용 후기 - 프로그래머스 프로필에 Github 저장소 연동

Programmers 에서는 이 상태로 2022년 이후로 새로고침을 안 한 상태라, 오랜만에 연동 해 봤다. 이직 시에도 Programmers로 한 적은 없어서 관리를 덜 하긴 했는데, 분석 해준다길래 오랜만에 땡겨봤다. (private 까지 조회 되는지 궁금해서 해 보기도 했다. - Kotlin이 집계된다면 private가 보이는 것인데...) 2024-02-27 18:47 시작했으므로 내일 확인 예정이다. 2024-03-01 확인 결과로 3531 라인 정도의 kotlin이면 private 제하고 확인 되는 걸로 추측된다! 아무튼 JS로 집계되는 것이 꽤 많아서 당황했는데... public에 js 모듈 include 한 것이 뜬 것인가 싶다... maven이나 gradle 사용 이전 코드 집계가 된 건 가...