일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 데이터베이스
- python3
- 스프링 부트
- Python
- JPA
- 안드로이드
- 자료구조
- 파이썬
- BCI
- mysql
- 디자인 패턴
- 개발
- 장고
- 자바
- 스프링
- 스프링부트
- rabbitmq
- 파이썬3
- Spring Boot
- 웹
- node.js
- java
- ORM
- bytecode
- 웹 개발
- 보안
- db
- django
- Spring
- HTTP
- Today
- Total
목록분류 전체보기 (104)
semtax의 개발 일지
개요 이번 포스팅에서는 Data Auditing(데이터 이력 관리) 에 대해서 다루어 보도록 하겠다. Data Auditing? 상황을 1가지 가정해보자, 만약 당신이 게시판 관리자고, 관리자 페이지를 통해서 게시글 댓글목록을 관리 하고 있다고 가정을 해보자. 그렇다면 언제 이 글이나 댓글을 작성했는지 라던가, 누가 작성했는지를 알아야, 나중에 차단을 시키던지 다른걸 하던지 관리를 할 수가 있다. 또한, 사용자에 따라서 글 쓰는 기능을 제한 하는 기능도 위의 Data Auditing이 있어야 가능하다. 바로 위와 같은 이유들 때문에, 이러한 데이터 이력관리가 중요하다는 것을 알 수 있다. 하지만 이러한 데이터 이력관리를 처음부터 만들기에는 뭔가 귀찮다. 뭔가..
개요 이번 포스팅에서는 지난 포스팅에 구현 한 회원가입 기능에 이어서, 로그인 기능을 구현하도록 하겠다. 추가적으로, 로그인 기능을 구현하면서 인증(Authentication)의 개념과 세션, 그리고 인터셉터에 대해서도 알아보도록 하겠다. 인증(Authentication) 이란? 먼저, 인증이란게 어떠한 개념인지 알아보도록 하자. 위키피디아에 인증에 대한 개념을 검색하면 아래와 같은 결과가 나온다 Authentication is the act of proving an assertion, such as the identity of a computer system user. In contrast with identification, the act of indicating a pe..
개요 이번 포스팅에서는 회원가입 기능을 추가해보도록 하겠다. 설계 먼저 회원 정보는 간단하게 아래의 데이터만을 가지고 수행하도록 한다. 아이디 패스워드 이메일 회원 가입 기능은 대략적으로 아래와 같은 흐름을 따라서 만들어 진다. 사용자가 서버에 회원 정보를 전송한다. 서버는 회원 정보를 받고 아래와 같은 작업을 수행한다. 먼저 데이터베이스에 중복된 아이디가 있는지 확인 한다. 만약 중복된 아이디가 있는 경우, 이미 있는 회원이라 가입이 안된다는 메시지를 보낸다. 그렇지 않은 경우 전달 받은 데이터를 데이터베이스에 추가 한다. 이때, 전달받은 패스워드를 해싱해서 저장한다. 회원가입을 성공했다는 메시지를 전달한다. 구현 먼저 아래와 같이 실제 회원 정보에 해당하는 Accoun..
개요 이번 포스팅에서는, 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..