개인 공부89 TIL : @Async, @EnableAsync (24) Spring Async비동기 처리를 나타내는 @Async에는 proxy target 옵션이 존재한다.처리 모드가 프록시일 때만 설정할 수 있는 옵션인데, true라면 CGLIB로, false라면 동적 프록시로 생성한다. 두 방법 모두 프록시를 사용하므로 당연히 상속을 사용하는데, CGLIB는 subclass 기반이고 동적 프록시는 interface 기반이다.여기서 CGLIB는 바이트 코드 기반으로 생성하기 때문에 성능적으로 약간 낫다. @Async가 아닌 커스텀 어노테이션을 등록해서도 사용할 수 있다.@EnableAsync 속성에 annotation 필드가 바로 이 옵션이다. 비동기를 사용하기 앞서 thread pool의 사이즈, queue 사이즈를 정해서 하나의 Executor를 빈으로 등록한다.poo.. 2024. 6. 12. TIL : gradle-build-action (짧) 🏃♂️ Github Action 이번에 CI를 작성하면서 시간이 생각보다 더 걸려서 gradle을 캐싱해야 하는 일이 생겼다. 처음에는 "CI를 굳이 어렵게 가야하나? 적당히 긁어와서 쓰자"라는 생각으로 다음 코드를 붙여서 사용했다. - name: Gradle Caching uses: actions/cache@v3 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle- 근데 뭔가 시간적으로 개선이 안되는 것 같아서 "다른 방법이 없을.. 2023. 10. 27. Http&Network Basic : 웹 공격 기술 (11장) 🔪 웹 공격 기술 11.1 웹 공격 기술 웹 애플리케이션 등의 리소스가 주요 타겟이다. HTTP에는 보안 기능이 없어 애플리케이션에서 모두 구현해야 한다. 변조가 가능한 요청에 공격 코드를 실어서 공격한다. 11.1.1 웹 애플리케이션에 대한 공격 패턴 공격 패턴은 능동, 수동 두 가지가 존재한다. 능동적 공격은 서버를 노리는 공격이다. 리소스에 대해 직접 실행된다. 대표적인 케이스는 SQL 인젝션과 OS 커맨드 인젝션 등이 있다. 수동적 공격은 유저를 노리는 공격이다. 함정을 이용해 유저가 공격 코드를 실행하도록 한다. 대표적인 케이스는 XSS, cross-site scripting, CSRF, Cross Site Request Forgery 등이 있다. 11.2 출력 값의 이스케이프 미비로 인한 취약.. 2023. 7. 11. Http&Network Basic : 웹 콘텐츠에서 사용하는 기술 (10장) 😜 웹 콘텐츠에서 사용하는 기술 10.1 HTML HTML은 웹 상에서 하이퍼텍스트를 보내기 위해서 개발된 언어이다. HTML 태그로 문서를 수식한다. CSS는 보이는 외관을 변경한다. 10.2 다이나믹 HTML 정적인 HTML에서 클라이언트 사이드 스크립트를 사용해 동적으로 변경하는 기술이다. DOM을 통해서 HTML 문서를 동작시킬 수 있다. 10.3 웹 애플리케이션 웹 기능을 사용해서 제공되는 프로그램을 지칭한다. 이런 프로그램으로 생성된 콘텐츠를 동적 콘텐츠, 사전에 준비된 것은 정적 콘텐츠라고 부른다. CGI는 웹 서버가 클라이언트에서 받은 요청을 프로그램에 전달하기 위한 구조이다. 10.4 데이터 송신에 이용되는 포맷이나 언어 XML은 목적에 맞게 확장 가능한 마크업 언어로 데이터 공유에 목적.. 2023. 7. 11. Http&Network Basic : HTTP에 기능을 추가한 프로토콜 (9장) 📞 HTTP에 기능을 추가한 프로토콜 9.1 HTTP를 기본으로 하는 프로토콜 최초에는 단순히 문서를 전송하는 프로토콜로 생각했었다, 너무 널리 HTTP가 퍼졌기 때문에 새로운 프로토콜을 만들기는 어렵다. 따라서, 기능을 추가하는 형태로 다양한 요구사항을 만족하고 있다. 9.2 HTTP의 병목 현상을 해소하는 SPDY Google이 발표한 프로토콜이다. 웹 페이지 로딩을 50% 단축하게 목표이다. 병목 현상을 해결하는 좋은 기술이지만 웹의 문제는 그 외에서도 발생한다. 9.2.1 HTTP의 병목 현상 SNS와 같이 큰 트래픽에 대해서 HTTP는 잘 처리할 수 없다. 다음 HTTP의 사양이 병목 현상의 원인이다. 1개의 커넥션에는 1개의 리퀘스트. 리퀘스트는 클라이언트에서만 시작할 수 있다. (리스폰스만 .. 2023. 7. 4. Http&Network Basic : 누가 엑세스하고 있는지를 확인하는 인증 (8장) 🤷♂️ 누가 액세스하고 있는지를 확인하는 인증 8.1 인증이란? 실제로 누가 접근하려고 하는건지 알 수가 없다. 따라서, 등록한 본인만 아는 정보, 등록한 본인만 가진 정보로 확인해야 한다. 이런 정보는 보통 비밀번호, 일회성 토큰, 전자 증명서, 바이오 매트릭스, IC 카드를 사용한다. 앞으로 설명할 인증 방법 외에도 Windows 인증 등도 존재한다. 8.2 BASIC 인증 HTTP/1.0에서 구현된 인증 방식이다. 웹 서버와 대응하는 클라이언트 사이에서 이루어지는 인증 방식이다. Base64라는 인코딩을 사용하지만 암호화 자체는 아니기에 보안성이 떨어진다. 8.2.1 인증 절차 요청에 인증이 필요하면 서버는 401 상태코드로 응답한다. 클라이언트는 아이디:패스워드를 Base64로 인코딩하고 Aut.. 2023. 7. 4. 이전 1 2 3 4 ··· 15 다음