본문 바로가기

전체 글10

Spring 3, CGLib에 의한 BeanCreationException 문제 결론 필드 주입방식을 사용하자. (단점도 있지만) CGLIB 프록시의 문제점 spring 4 이상의 버전에서는 문제가 해결되었다고 하나 (참고: https://gmoon92.github.io/spring/aop/2019/04/20/jdk-dynamic-proxy-and-cglib.html ) (참고: spring boot는 cglib가 default이다.) 현재 spring 3.2인 환경에서는 default 생성자가 필요한 점 final을 사용할 수 없는 점 생성자를 이중호출 한다는 점 의 문제가 있다. 특히 프록시 되는 객체에 default 생성자가 없는 경우 생성자 주입 방식을 사용하면 에러[1]가 발생한다. (참고: https://code-lab1.tistory.com/193 ), 생성자 주입 방식.. 2023. 7. 1.
CORS에 대한 사실과 오해 CORS에 대한 사실과 오해 CORS는 cross origin resource sharing의 약자로 교차된 출처(Origin)의 자원을 공유할 수 있는 매커니즘(혹은 시스템)이다. CORS에 관한 헤더 설정과 허용방법(모든 출처를 허용하는 방법..), XSS, CSRF을 막을 수 있다고 알고있었으나, 서브 도메인 여러 도메인을 포함하는 방법, XSS CSRF를 막을 수 없다는 것을 알게되어 CORS와 이들을 함께 설명하려고 한다. CORS에 대해 설명하기 전 같은 출처에 대해서만 자원을 공유하도록 하는 정책인 SOP(Same Origin Policy)가 무엇인지와 왜 생겨나게 되었는지에 대해 알아보자. SOP (Same Origin Policy)의 배경 SOP는 동일 출처에 대해서만 자원을 공유하도록 .. 2023. 6. 26.
[Github] PR 머지할 경우 자동으로 Issue(이슈) Close 되도록 설정하기. Github을 이용하여 프로젝트를 관리하다보면 PR을 머지한 이후 이슈도 닫아야 하는 번거로움이 생깁니다. 이슈와 브랜치,PR을 연동하여 PR을 머지할 경우 자동적으로 이슈 역시 Close되도록 설정할 수 있습니다. (다만 깃헙에선 아직 default branch에 대해서만 적용이 되네요.) 1. 이슈 만들기 평범한 이슈를 만듭니다. 2. 이슈 우측 사이드 바에서 Cretea a branch 선택하기 해당 버튼을 클릭하여 브랜치를 만들 수 있는 모달 창을 띄웁니다. 3. 모달 창에서 브랜치 명을 선택하여 브랜치 만들기 모달 창에서 브랜치 명을 만들 수 있습니다. 브랜치 명을 만들게 되면 Development에서 이슈와 브랜치(와 이를 토대로 만들어진 PR)가 연동된 것을 확인할 수 있습니다. 추가로 로컬.. 2023. 6. 6.
브라우저에서 효과적으로 탭 관리하기 브라우저를 이용하다보면, 검색 & 문서 작성 등의 이유로 수 십개의 탭을 띄워놓는 경우가 많습니다. 특히, 중복된 탭들을 열어놓거나 이전 작업에 띄워두었지만 지금은 사용하지 않는 탭들이 열려있게 됩니다. 이처럼 띄워놓은 여러 개의 탭들을 관리해주는 확장 프로그램을 소개하려고 합니다. workona 는 브라우저 관리 도구로 Workspace 라는 단위를 기준으로 탭들을 저장하였다가 필요할 때 마다 사용할 수 있습니다. (그 밖에도 다양한 기능들이 있습니다.) 저는 학교, 동아리, 동아리 내 프로젝트 등 다양한 Workspace를 만들어 탭들을 분리해 사용하고 있습니다. 이 때 만들었던 Workspace마다 Memo, Tasks(TodoList) 등도 사용할 수 있습니다. (모든 Task를 한꺼번에 확인할 .. 2023. 3. 4.
2022년 회고 22년 회고 22년도를 마치며, 한 해의 활동 정리와 목표 달성 점검을 바탕으로 회고를 남겨보았다. 목표 올해의 목표는 알을 깨고 나오기였다. 21년 중순부터 아르바이트를 하며 본인의 부족함을 많이 깨달았다. 그 원인으로 생각되었던 경험 부족을 극복하고 깨달았던 점들을 고쳐나가고자 기존에 안해봤던 활동들을 하였다. 다양한 것들을 경험하고 배워보자는 취지였다. 무엇을 하였는가 방학기간 동안(1월 2월 겨울, 7월 8월 여름) 편의점 아르바이트를 하였고, 군 전역 후 복학하여 학교를 다녔다. (22-1, 22-2, 22-겨울 계절학기) 학교를 다니며 했던 것은 아래 3가지로 나눌 수 있을 것 같다. 동아리 활동 학교 생활 기타 활동 (여행, 스터디, 우테코 프리코스 참여 등) 이다. 동아리 활동 교내 스타트.. 2023. 1. 1.
톰캣의 정의와 구성 정리 도입 프로젝트에서 WAS로 사용하는 톰캣에 대하여 복습목적으로 정리하였다. 톰캣의 정의를 살펴보고 이를 바탕으로 정리하고자 한다. 톰캣의 정의 톰캣 공식 홈페이지에서는 톰캣을 다음과 같이 정의한다. 아파치 톰캣은 Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication 스펙의 구현인 오픈소스이며, 이들은 Jakarta EE의 부분(part)이다. (Jakarta EE는 Java EE의 새로운 명칭이다. 따라서 앞으로는 J2EE로 통칭하겠다.) 기초 용어 톰캣의 정의를 이해하기 위해 알아야 할 기초 용어는 다음과 같다. 서버:.. 2022. 12. 27.