반응형

전체 글 121

[Python] 재미로 만드는 로또 번호 생성 파일_가중치

■ 파이썬 기본 강의를 듣다가 오늘 금요일이기도 해서 로또 번호를 추출해내는 코드를 짜볼까 시도해봤다. 처음에 어떻게 가중치를 줄까 하다가 최근 당첨 번호를 이용해 자주 나오는 번호 위주로 랜덤값이 생성되도록 코딩했다. 잘 맞을지 모르겠으나 일단 6개의 숫자 추출이 잘 되므로 연습하기 재미있었다. 1. 동행복권 사이트를 방문하면 당첨번호를 엑셀 파일로 다운로드 할 수 있다. 임의로 지정한 회차 데이터를 다운받아 텍스트 파일로 편집했다. (880 ~ 1083 회차) 2. 편집한 파일을 열어 당첨번호들을 읽어왔다. 3. 가중치를 담을 리스트를 만들고 리스트에 1부터 45번까지 당첨번호가 등장한 횟수를 값으로 설정했다. 4. 구매할 게임 수를 설정하고 가중치를 줘서 난수값을 생성하는 코드를 만들었다. 5. 이..

Python 2023.09.08

[SESSION] Http-Only , Secure

서버 설정을 보다 web.xml 파일 내부에 쿠키 설정 부분을 보게 되었다. 위에 설정 중에 http-only , secure 설정은 모두 쿠키 정보를 탈취 당하지 않기 위해 설정되는 값이다. 이 부분을 한 번 알아보고자 한다. 1) Http-Only - 브라우저에서 쿠키로 접근할 수 없도록 제한하는 속성(쿠키는 클라이언트에서 자바스크립트로 조회가 가능하기 때문에) - XSS 공격이 차단된다. 2) Secure - 통신상 정보 유출을 막기 위해서 HTTP가 아닌 HTTPS 통신을 활용 설정 속성 - HTTP 통신이 아닌 환경에서는 쿠키를 전송하지 않는다. 위 속성들은 보안상 확인해야 할 기본적인 속성에 속한다. 나는 로컬에서 테스트하느라고 Secure 속성을 false 로 변경해서 사용했지만 일반적으로는..

지식 2023.09.05

[USB] 쓰기 방지 된 USB

■ USB 에 프로그램을 다운받을 때 잠금이 되어 있어 설치가 불가능하다는 메세지를 본 적이 있다. 해당 메세지를 찾아보니 USB 쓰기 방지 설정이 되어 있기 때문이었는데 그 설정을 지우고 나서야 다운로드가 가능했다. 설정 방법은 아래를 참조하면 된다. 1. cmd 를 실행한다. 2. diskpart 명령어를 입력한다. 3. list disk 명령어를 통해 디스크 정보를 확인한다. 4. Select Disk [디스크번호] 명령어로 디스크를 선택한다. 5. attribute disk clear readonly 명령어를 입력하여 특성을 지운다.

지식 2023.08.21

[Python] 함수 기본값 설정

■ 함수를 만들어 사용할 때 파라미터를 보내주지 않으면 에러를 발생시킨다. 그래서 해당 함수에 기본값을 설정한다면 파라미터를 보내지 않고 함수를 실행하여도 에러가 발생하지 않게 된다. 기초적인 함수를 통해 해당 내용을 기록한다. ▶코드 ▶실행결과 ▶코드 ▶실행결과 (에러발생) ▶코드 ( 파라미터의 기본값을 설정해주어서 함수 실행시 파라미터를 보내지 않더라도 에러를 방지한다. ) ▶실행결과

Python 2023.08.21

[Client IP] request.getRemoteAddr() X-Forwarded-For

■ 사용자의 IP 정보를 확인해야 할 상황들이 있다. 기존에 신경쓰고 있지 않았던 부분이라 잘 가져오겠지 생각했는데 모든 사용자의 정보가 하나의 IP 정보로 입력되고 있어서 확인하기 위해 소스를 분석해보니 단순히 reqeust에서 getRemoteAddr() 함수를 통해 사용자의 IP를 얻어오고 있었다. 단순하게 WAS에 프로젝트를 올려서 사용했다면 사용자의 IP 정보가 제대로 들어왔을 수 있지만 웹서버를 이용하거나 L4/L7 등을 이용한 로드밸런싱을 하는 경우 또는 중계서버나 프록시 서버가 있을 경우엔 정확하지 않을 수 있다. 그래서 확인하기 위한 방법을 기록한다. ■ X-Forwarded-For HTTP Header 는 HTTP 헤더 중 하나로, HTTP Server 에 요청한 Client 의 IP ..

지식 2023.08.10

[Mac] MacBook Pro(Retina, 13-inch, Late 2013) 배터리 교체

■ 팀장님이 개인적으로 사용하시던 노트북을 얻게 되었다. 배터리 스웰링 현상으로 Mac이 많이 부풀어 있었다. 이것을 수리하기 위해 공식센터와 사설을 알아보았으나 비용이 상당히 많이 들어서 가성비가 너무 맞지 않았다. 그래서 자가 수리를 해보고자 인터넷으로 배터리를 주문했다. 예전에 아이폰7을 배터리 교체 작업 해본 적이 있었는데 그 때 배터리를 분리하는 과정에서 충격이 있어 배터리가 폭발한 기억이 있다.(집 장판이 다 타고 난리도 아니었다.) 그래서 이번에 노트북에도 문제가 생기는 것은 아닌지 걱정을 했지만 다시 도전해보려고 주문했다. [ 1 ] 뒷 판 일부 나사 제거 모습 - 일부만 제거했는데도 배터리가 부풀어 있어 뒷판이 튕겨나올 정도였다. [ 2 ] 뒷 판 제거 모습 - 눈으로 봐도 베터리들이 많..

지식 2023.07.28

[Eclipse] Stop the Server && Terminate

■ 이클립스로 작업을 하다가 세션을 확인할 일이 있어서 서버를 중지했다가 다시 시작을 했다. 그런데 세션이 남아있는 경우가 있었다. 남아있을 때도 있고 없을 때도 있고 그랬는데 차이점은 중지 방법에 있었다. 정확한 이유는 모르지만 내부 동작 방법이 조금 다른 듯 하다. 재미있는 경험이라 기록한다. 왼쪽 버튼을 이용해 어플리케이션 중지 후 시작을 하면 세션 정보가 남아있고 오른쪽 버튼을 이용해 어플리케이션 중지 후 시작을 하면 세션 정보가 지워진다. ▶ 이클립스 문서를 살펴보면 밑에 내용으로 나온다. (https://help.eclipse.org/latest/index.jsp) Help - Eclipse Platform help.eclipse.org 해당 내용으로 보면 Terminate 버튼이 kill 명..

Eclipse 2023.07.21

[Configure]

■ 서버에서 install 명령어를 통해 패키지를 다운로드 할 경우엔 Configure 영역을 건들 일은 많지 않다. 하지만 소스 파일 형태로 Apache를 다운로드 받아야 했고 Configure 속성을 변경해서 테스트할 일이 있어서 정보를 확인하게 되었다. Configure ( 소스파일에 대해 환경설정을 해주는 명령어 ) - 스크립트는 특정 플랫폼에서 아파치 웹서버를 컴파일 하고 설치하기 위해 소스 트리를 구성한다. - 여러 옵션을 사용하여 원하는 요구조건에 맞게 서버를 컴파일 할 수 있다. configure 스크립트는 배포본의 최상위 디렉토리에서 실행해야 한다. 옵션 참조 : https://httpd.apache.org/docs/2.4/ko/programs/configure.html configure..

지식 2023.07.20

[WebtoB] Method Not Allowed

■ 서버끼리 통신을 하는데 자꾸 CORS 에러가 발생했다. 분명히 프로젝트 내부에 CORS 설정이 존재하고 시스템과 연계하지 않고 모듈로만 연계할 때는 문제가 없었다. 그래서 시스템들의 CORS 설정 문제인가 싶어 모든 URL을 허용해주고 테스트를 했는데도 문제가 발생했다. 고민하고 찾다보니 WebtoB 환경에서 메서드를 허용하지 않는 설정을 할 수 있다는 것을 알게 됐다. 해당 문제 원인은 WebtoB 설정에서 OPTIONS 메서드를 허용하지 않아서 발생한 문제였다. OPTIONS 메서드는 HTTP의 많은 메서드 중 하나이다. GET,POST,PUT,DELETE 등과 함께 존재하는데 해당 메서드는 통신하는 대상 자원에 대해 실제 요청을 보내기 전 통신 옵션을 확인하는데 사용된다. 이를 이해하기 위해 P..

WEB . WAS 2023.07.18

[JAVA] 예외 메세지 ,getMessage() toString() printStackTrace()

■ 소스 코드를 작업할 때 우린 예외 메세지를 분석해서 발생하는 오류를 해결하고는 한다. 그러나 너무 많은 오류 메세지는 불필요하게 느껴질 때도 있다. 그럴 땐 에러 메세지 출력 범위를 함수를 통해 제어할 수 있다. 해당 메세지들의 출력 범위는 많이 다르므로 프로세스 오류 메세지 중요도에 따라 다르게 작업해야 한다고 생각한다. 1. getMessage() 발생한 에러의 원인을 간략하게 출력한다. (Exception의 유형도 존재하지 않음.) 2. toString() 발생한 에러의 원인의 이유를 출력하지만 자세한 발생 위치는 출력하지 않는다. 3. printStackTrace() 발생한 에러의 원인과 발생 위치를 구체적으로 출력한다. (전체적인 프로세스 단계를 모두 출력)

JAVA 2023.07.12
반응형