일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- db
- django
- 파이썬
- Python
- 웹 개발
- 장고
- Spring
- 스프링
- 자바
- python3
- 데이터베이스
- JPA
- Spring Boot
- rabbitmq
- 스프링 부트
- bytecode
- 웹
- 파이썬3
- mysql
- 안드로이드
- 스프링부트
- 보안
- 디자인 패턴
- BCI
- 자료구조
- 개발
- node.js
- java
- ORM
- HTTP
- Today
- Total
목록2020/04 (9)
semtax의 개발 일지
개요 이번 포스팅에서는, script 태그를 원격에서 불러올때, 발생 할 수 있는 CORS 문제에 대해 알아보도록 하겠습니다. 회사에서 성능 모니터링 수집도구를 만들다가 발생한 이슈가 있어서 하루종일 삽질을 하다가, CORS에 대해 공부하게 되어 그 내용을 정리하였습니다. CORS? 먼저 구글에서, CORS의 정의를 찾아보면 아래와 같습니다. Cross-origin resource sharing (CORS) is a mechanism that allows restricted resources on a web page to be requested from another domain outside the domain from which the first resource was served.[1] A web ..
개요 이번 포스팅에서는, javascript 에서 window.location.host가 빈 값이 나오는 경우에 대해서 알아보도록 하겠다. window.location 객체? MDN 페이지의 설명에 따르면, window.location 객체는 웹 브라우저에서 HTML Document의 위치를 알려주는 객체이다 보통 location에 있는 속성은 URI 스키마를 따르는데 대략적으로 아래 URL에 있는 그림과 같다. https://developer.mozilla.org/en-US/docs/Web/API/Location 이때, 위 URL의 내용을 참고하면 window.location.host 는 현재 html이 있는 사이트의 호스트명이 된다. 과연 어떻게 하면 빈값이 나오게 되는것일까? 로컬 html에서 & ..
개요 이번 포스팅에서는 Gradle 플러그인을 디버깅하는 방법에 대해서 알아보도록 하겠습니다. 굳이 적는 이유 Gradle 플러그인 과 같은 경우에는, 일반 자바 코드 디버깅 하듯이 브레이크 포인트를 걸고 하면 제대로 디버깅이 되지 않는다. 따라서, 일반적인 디버깅 방법과는 다르게, 원격으로 디버깅을 해줘야 된다. 어떻게 하는가? 1. 먼저, 디버깅하려는 플러그인 소스코드가 있는 프로젝트에 들어간다. 2. 메뉴에 있는 Run > Edit Configurations... 를 들어간다. 3. "+" 버튼을 클릭하고, Remote Configuration 을 생성하고, 확인을 누른다. 4. 다음으로, 플러그인을 사용하는 프로젝트에 들어가서 아래 명령어를 입력 해준다. ./gradlew --no-daemon -..
개요 회사에서 Gradle 과 관련된 솔루션 버그를 잡다가 막힌 내용이 있었는데, 까먹기전에 그 내용을 간략하게 정리해서 올리려고 한다. 내용 Gradle은, groovy 또는 코틀린을 이용해서 프로그래밍 하듯이 빌드 스크립트를 코딩해서 제작이 가능하다. 따라서, 빌드할 내용이 복잡해지면 마치 코드 리팩토링을 하는것처럼 빌드 스크립트도 리팩토링을 해야하는 일이 생긴다. 또한, 일반적인 build.gradle 파일 1개만으로 감당이 안되는 복잡한 작업을 (예를 들어, 코드 난독화 솔루션이나, 컴파일된 클래스를 변경해서 성능 모니터링을 하는 솔루션) 하는 경우를 대비해서, Gradle은 플러그인을 만들 수 있는 기능을 제공한다. 보통 저러한 Gradle 플러그인..
개요 해당 포스팅은, 예전에 학교 과제로 정리했던 시스템 프로그래밍/운영체제론 과제를 하면서 정리한 내용들을 올린 포스팅입니다. 틀린내용이 있을 수 있으므로 너그럽게 봐주시면 감사하겠습니다. 1. 가상메모리의 정의 실제 메모리(혹은 디바이스)의 물리적인 주소와 가상의 주소를 물리 주소와 대응 시켜서 실제 물리적인 용량보다 더욱 큰 용량을 사용할 수 있게 하는 기법이다. 보통 세그먼트 방식과 페이징 방식 2가지가 사용된다. (추가적인 내용으로 캐시의 주소도 가상주소를 사용하는 경우가 있는데 보통 VIVT(인덱스 / 태그 주소를 둘다 가상화), VIPT(인덱스만 가상화),PIVT(태그 주소만 가상화), PIPT(둘다 물리주소 사용) 등의 기법이 존재하고, VIPT를 보통 많이 사용하는것으로 알려져 있다. 2..
개요 해당 포스팅은 학교 과제로 정리한 내용을 그냥 묵혀두기에는 아까워서 정리한 내용입니다. 따라서, 틀린부분이 있을 수도 있으니 너그럽게 봐주시면 감사하겠습니다.. 2. ARM 메모리 관리기법 분석 2-1. Address Model in ARM 1. 하나 이상의 클라이언트 장치가 메모리 상호 연결을 통해 SMMU에 연결됩니다. 2. 클라이언트 장치는 SMMU의 업스트림으로 설명됩니다. SMMU와 클라이언트 장치 간의 연결은 업스트림 버스입니다. 3. SMMU는 메인 메모리를 통해 나머지 메모리 시스템에 연결됩니다. 4. 나머지 메모리 시스템은 SMMU의 다운 스트림으로 설명됩니다. SMMU와 나머지 메모리 시스템 간의 연결은 다운 스트림 버스입니다. 5. 클라이언트 장치는 SMMU에 트랜잭션 요청을 보..
개요 해당 포스팅은, 1년전에 학교 과제로 정리했던 내용을 그냥 묵혀두기에는 아까워서 블로그에 포스팅을 하는 내용입니다. 따라서, 틀린 부분이 많을 수도 있으니 너그럽게 봐주시면 감사하겠습니다. 1. 인텔 메모리 관리기법 분석 1-1. Address Model in Intel 1-1-1. 주요 특징들 인텔의 Address Model은 3가지로 나누어 지는데, 각각 Flat Memory Model, Segmentation Memory Model, Real Address Model로 나눌 수 있다. 첫번째로는, Flat Memory Model이다. Flat Model과 같은 경우 코드나 데이터 영역이(세그멘테이션 같이) 따로 영역이 나누어지지 않아서, 32bit 기준으로, 0~2^31-1 byte 에 해당하..
소개 이번 시간에는 pwnable.kr 에 있는 fd 라는 문제를 풀어보도록 하겠습니다. 풀이 먼저, 아래 주소에 ssh를 이용해서 접속해줍니다. ssh fd@pwnable.kr -p2222 접속해서 파일들을 살펴보면 아래 파일들이 있는것을 볼 수 있습니다. fd fd.c flag 먼저 문제 코드를 읽어 보도록 하겠습니다. 문제 코드는 아래와 같습니다. #include #include #include char buf[32]; int main(int argc, char* argv[], char* envp[]){ if(argc