본문 바로가기

분류 전체보기

(14)
Spring Data JPA - List 타입과 Auditing 그리고 연관 관계 1. @Convert(converter = JpaListConverter.class) : Collactions Type 변환지금껏 Entity 작업을 하면서 굉장히 귀찮게 느껴진 부분이 있었다.항상 List 과 같은 타입을 어떻게 처리할지 애매하게 느껴졌었다. 그래서 따로 정말 필요한 경우는 List 대신 별도의 Entity를 생성해서 연관관계를 설정해주었다.하지만 완전 특정 Entity 하위에 종속되는 List의 경우, 굳이 별도 Entity를 만들고 복잡한 작업을 하기에는 여러모로 아니라고 생각했다. 그런 경우는 보통 @ElementCollection을 통해 작업을 해줬었는데.. 막상 DB 구조를 생각하며 사용하다보니 의문이 들었다.어차피 몇 글자 안되는 경우,  Seperator를 포함한 Strin..
라즈베리파이 3B+ 에 Nginx와 HTTPS(SSL/TLS) 구성하기를 가장한 삽질 일기. 우선 똑같은 실수를 다시 반복하지 않기 위해 기록을 남긴다.참 습관이란 게 고마울 때도 많지만 가끔 실수를 했는지 조차 모르게 만드는 것 같다...  1. 서론우선 내 목표는 포트폴리오용 API 서버를 구현하는 것이 목표였고,Nginx로 로드밸런서 및 Reverse Proxy를 구성해서 Backend 서버들을 묶어줄 생각이었다. Nginx를 선택한 것은 원래 Apache Mod_Proxy를 걷어내고선 똑같은 실수를 다시 반복하지 않기 위해 기록을 남긴다.참 습관이란 게 고마울 때도 많지만 가끔 실수를 했는지 조차 모르게 만드는 것 같다... 우선 내 목표는 포트폴리오용 API 서버를 구현하는 것이 목표였고,Nginx로 로드밸런서 및 Reverse Proxy를 구성해서 Backend 서버들을 묶어줄 생각이..
윈도우11(Windows 11) - 작업표시줄 캘린더에 시계는 어디로? 아 급한 경우, 켜서 사용하던 윈도우 시계가 윈도우11로 오고 나서 막상 쓰려니 사라졌다.처음에는 달력도 안보여서 뭐지 했는데, 그래도 이건 접혀 있던거라 금방 찾았다. 진짜 열받는 게, 지들이 뭔데 이렇게 자주 쓰는 기능을 안쓴다고 판단을 한걸까?아예 끄고 켜는 옵션 조차 없다고 하는데.. 1~2분 검색해서 켜면 되겄지 생각했는데... 10분 넘게 소요... 급해서 켠건데...ㅠ뭐 엿장수 마음이겠지만 막상 급할 때 쓰던 게 없으니 불편했다. 정말 맘에 안들지만 그냥 아래처럼 작업표시줄에 초시계를 띄우기로 했다.  여기서 또 어이가 없던 게 MS에서 해당 초시계 쓰라고 답변 주길래,맘에 안들지만 그래도 어떻게 하는지 설정이라도 해보자는 생각해 가이드를 따라했는데....  그들이 말한 설정이 없다? 저 빨..
Spring Security - csrf는 무엇이며, 왜 disable하는 경우가 많은가? 글을 쓰기에 앞서 왜 이미 알고 있는 내용을 정리하는가?1년간 데이터분석에 파이썬만 만졌더니 자바 웹기술에 대한 내용들이 뭔가 뿌옇게 흐려진 느낌이다.그래서 내가 어디까지 모르는지 잊어버린 것은 없는지 확신을 얻기 위해 순차적으로 정리해보기로 했다. 1. CSRF란?우선 csrf 라는 용어의 정의부터 잊지 않았는지 짚고 가자면..희끄무리하지만 내 기억상 웹사이트에서 위조요청을 날리는 일종의 보안 위협요소이다.xss(cross site script)의 경우, 스크립트를 이용한 경우라면,csrf(cross site request forgery)는 요청 자체를 위조해서 권한을 취득하는 등의 행위를 이용하는 것이다.해당 방식은 공격자가 인가자(권한이 있는 자)를 이용해 특정 요청을 하게 하는 방식이라고 보면 되..
Vercel로 이사하기 1편 이제 길든 짧은 배운 것은 바로 바로 블로그에 정리하기로 했다.아무리 생각해도 에드고시 통과하기 기다리다가는 암것도 안되겠다는 생각이들고, 이전 네이버에서 작성하던대로 나를 위한 글을 작성하는 게 훨씬 이득이란 생각이 들었다.왜 도메인주소는 바꿔가지고 에드고시 통과하고 다시 처음부터 했는지... 참... netlify 이슈로 서비스 중이던 웹페이지들을 전부 닫아버렸는데.. 잊고 있다가 다시 쓰려고 보니 고민이 되어, 결국 이사를 결정했다. AWS, OCI, Vercel 중 많이 생각해봤는데. 추가적으로 NextJS를 도입해보려고 고민중이기에 Vercel로 선택했다. (물론 Backend 테스트용으로 OCI 프리티어 고민을 하긴했으나 무료로 사용하는 계정 중 괜찮은 조건의 인스턴스를 만드는데 바로 만들어지..
개발자로 살기 쉽지 않다 쉽지 않아... 시스템 유지보수(java)로 적힌 곳에 입사해 들어왔는데... java는 눈 씻고 찾아봐도 안보인다... 있던 Python 코드도 앞으로 폐기하고 솔루션 도입으로 개발을 없앨 예정이라고 한다...거기다 갑자기 들어온 업무는 개발자가 아닌 헬프데스크 업무... 중소기업에서도 이렇게 하면 문제가 될텐데... 이래저래 개인적인 문제들이 많이 생겨서 글을 계속 못썼다.. 나를 위해 작성하던 블로그이다 보니 스스로에게 자꾸 미안한 마음이 든다... 밀린 숙제로만 느껴지고... 이전에 다른 플랫폼에서 글을 썼을 때와 너무 차이가 나서.. 이래도 되나 싶다.. 전직장의 작업물을 포트폴리오로 사용할 수도 없어서 마땅히 내세울만한 포트폴리오도 없고, Github도 거의 중지 상태고... 스터디노트도 블로그에는 전혀 업로..
짧게 배워보는 취미 개발 로드맵 (1) - 서론 개인적인 일들과 애드고시 불합격 소식에 한동안 글쓰는 것을 포기하고 있었는데, 다른 글 다 지우고 Java에서는 f-string 같은 건 없나하고 찾아보다가 써놓은 글을 많은 분들이 읽어주셔서 다시 한 번 시작해보려 한다. 그리고 뭔가 바뀌지 않으면서 달라진 내일을 기대하는건 바보 같다는 생각이 계속 들어서 힘든 중에도 다시 시작해보려고 한다. 비록 주니어 수준의 대리 나부랭이 개발자지만 배운 것을 복습하고, 잊지 않게 기록한다는 마음과 나도 처음에는 분명 이런 부분 때문에 고생했었는데.. 싶은 부분을 내가 소화한 한도까지 정리해 보려고 한다. 고로 내가 틀리거나 더 나은 방식을 놓치고 있을 수 있다. 따라서 지나가시던 선배님들의 충고와 조언은 환영이며, 감정이 상하지 않는 선에서 감사히 받겠습니다. 앞..
HTML5에서 Vanilla JavaScript를 활용한 DOM 조작: innerHTML vs DOMParser vs createElement HTML5에서 Vanilla JavaScript를 활용한 DOM 조작 HTML5를 사용할 때 Vanilla JavaScript만을 이용하여 DOM을 생성하는 방법에 대해 알아보겠습니다. 다음은 각 방법별 예시 코드입니다. 1. innerHTML을 이용하는 방법 const container = document.getElementById('container'); container.innerHTML = 'Hello, innerHTML!'; innerHTML은 간단하게 HTML 문자열을 DOM 요소의 내용으로 삽입합니다. 그러나 이 방법은 보안상 취약점을 내포하고 있고, 기존의 DOM 구조를 파괴할 수 있으므로 사용을 지양해야 합니다. 2. DOMParser를 이용하는 방법 cons..
Win10에서 Apache 2.4와 Certbot(https) 그리고 왜 안돼? 1. OneDrive와 싸움 우선 글쓰기에 앞서 뻘짓으로 많은 시간을 날려먹었다. 이게 다 전에 겪었던 일 이었던 것 같은데... 당시 손으로 기록을 남겼거나 아니면 바쁘단 핑계로 기록을 남기지 않은 것 같다. 우선 OneDrive 놈이 또 사고를 쳐서(깔끔하게 사용 못하는 내 잘못이겠지만 ㅠㅠ) 개인 PC에 테스트 환경 구성을 다시 진행했다. Apache는 기존에 있던 것을 그대로 사용하려고 하는데. 분명 전에 구동해서 몇번 테스트를 진행했는데, 이게 또 오늘 하려니까 안돌아가는거다. 내 예상으로는 직전에 그만두었던 직장 노트북에 개인 MS Office랑 OneDrive가 설치되어 있었는데. 로그아웃을 해두고 나왔음에도 뭔가의 이유로 다시 붙은 것 같다. 그러면서 OneDrive가 뭘 또 업데이트 한게..
getter 와 setter 아래의 내용 중 메서드를 사용하기 때문에 느리다는 식의 이야기는 지금에 와서는 큰 의미가 없다는 것을 알게 되었다. 사실 그렇게 따지면 JVM을 쓰는 것 자체가 C보다는 리소스를 더 쓰고 더 무겁다. 하지만 이것은 상대적인 것이지 클라이언트 컴퓨팅 파워 마저 옛 서버 PC이상의 성능을 내고 있는 요즘 세대에 와서는 큰 고려 대상이 아닌 것으로 보인다. 만약 당신이 극한상황의 Embedd 프로그램을 만드는 것이라면 애초에 JVM보단 다른 선택을 할 것이기 때문에 아래의 Getter, Setter는 성능과 연결지어 생각하는 것보다는 원래의 목적에 포커스를 맞추는 것이 좋을 듯 하다. Getter, Setter에 대해 사람 몸으로 예시를 들자면, 입을 통해 음식을 씹어 삼켜서 소화를 시켜야 정상적으로 영양분을..