본문 바로가기

전체 글306

크롤러(crawler) 만들기(주의 : 실사이트 테스트하면 안됨) 크롤링(Crawling)이란? 크롤링 혹은 스크래핑은 웹 페이지를 그대로 가져와서 데이터를 추출하는 행위를 의미한다. 이번 프로그램은 요청 페이지들 안에 있는 url들을 print하는 것이다. 예를 들어 A라는 페이지를 열면, 그 안에는 다양한 url들을 호출하는 페이지가 있다. 네이버나 다음 메인페이지를 누르게 되면, 수많은 요청문과 함께 이미지 파일들과 css파일, json파일등등이 쏟아져 받아진다. robot.txt 라는 파일을 보고 가져올지 말지를 정해야하는데, 그건 나중에 따로 개발해야한다. 구성방식 1. 먼저 실행시에 크롤링할 IP를 입력 받는다. 2. 입력받은 IP가 ssl인지 여부를 확인 후 크롤러를 실행시킨다. 3. crawled_urls 함수를 이용해 crawl을 실행한다. 4. url.. 2021. 9. 18.
file 명령어로 mime type 확인하기 mime type은 무엇일까요? 일단 MIME이란? Multipurpose Internet Mail Extensions의 약자입니다. 인터넷 메일의 파일형태를 의미하는 것이지요. 어쨌든 파일이 있다면, 해당 파일의 앞부분에는 MIME이 들어있습니다. 그걸 추출해서 알려주는 팁을 알려드리겠습니다. file --mime-type [파일명] 위와같이 명령하면 이 파일이 어떤 형태라는걸 알 수 있습니다. [예시] 2021. 9. 16.
sftp 사용방법(업로드/다운로드) ftp 중 보안을 위해 sftp를 사용하는 사람들에게 필요한 ssh에서 다운로드하는 방법입니다. sftp [계정명]@[SFTP IP] 위의 명령어대로 입력하면 됩니다. 로그인을 하게 되면 리눅스 쉘 명령어처럼 이동할 수 있습니다. 현재 위치의 pwd 라든지 현재 폴더의 파일목록 볼 수 있는 ls라든지 cd로 폴더를 이동하는 것 등을 모두 사용할 수 있습니다. 파일을 업/다운로드 할 위치로 이동 후에 다운로드는 get 명령어로, 업로드는 put 명령어로 가능합니다. 다운로드 get [FILE NAME] 업로드 put [FILE NAME] 2021. 9. 15.
OWASP Top 10 2021버전이 나왔습니다.(DRAFT FOR PEER REVIEW) 아직 초안이긴한데 일단 2021년 OWASP Top 10이 나왔습니다. 그 전에 나온게 2017년 그 전은 2013년도인데요. 4년마다 나오는군요. 한번 살펴보도록 하겠습니다. 총 3가지가 새로 생겼네요. A04:2021-Insecure Design A08:2021-Software and Data Integrity Failures A10:2021-Server-Side Request Forgery 각각 내용을 살펴볼까요? A04:2021-Insecure Design is a new category for 2021, with a focus on risks related to design flaws. If we genuinely want to "move left" as an industry, it calls .. 2021. 9. 14.
시간 함수를 사용할 때 섬머타임 관련 설정(feat. tm_isdst) 시간함수를 사용하면 보통 struct tm 를 이용합니다. 아래는 cplusplus에서 가져온 표입니다. 이렇게 구조체 멤버변수들을 볼 수 있는데요. 이 시간 구조체를 이용하여 mktime(로컬시간 변환 함수) 을 호출하면 시간이 나오죠. 이 때 중요한 것이 tm 구조체 안의 변수인 tm_isdst 입니다. tm_isdst 필드는 현재의 Time Zone 이 DaylightSaving 사용하는지 여부를 알려줍니다. 이 값이 만약 1이상이면 사용함을 의미하고, 이 값이 0이면 사용안함을 의미하고, -1이면 시스템 설정에 의해 작동됨을 의미하게 됩니다. 개인적 경험인데, 개발 도중 tm_isdst를 0으로 두었음에도 섬머타임 존에 걸려있는 지역에서 섬머타임이 적용되어 출력되는 버그아닌 버그가 발견되어 -1로.. 2021. 9. 14.
ls 확인시 정확한 생성시간 확인하기(feat. time style) 파일을 보기 위해 ls 명령어를 치면 기본적으로 아래와 같이 파일에 대한 정보가 나옵니다. 좀 더 자세하게 -l 옵션을 주면 이렇게 나오죠 파일의 권한, 소유자, 시간, 파일명 이번에 알아볼 것은 초단위까지의 생성시간을 확인해보는 건데요. 그럼 명령어를 볼까요? ls -l --time-style=full-iso --time-style이라는 옵션을 사용합니다. --time-style 옵션을 보면 5가지로 있네요. full-iso +%Y-%m-%d %H:%M:%S.%N %z long-iso +%Y-%m-%d %H:%M iso +%Y-%m-%d $newline%m-%d %H:%M locale(기본) +%b %e %Y$newline%b %e %H:%M 직접 Format 설정 "+%Y %M %D %h:%m:%S".. 2021. 9. 14.
coredump thread 확인방법 코어덤프가 남게 되면 왜 죽었는지에 대한 디버깅을 해야한다. 기본적으로 백트레이스(backtrace)를 보게 되는데 기본 명령어로 bt를 이용한다. 이 backtrace가 죽은 원인일 확률은 매우 높으나 아닐 확률도 있음을 알아야한다. 프로세스가 단일로 돌 수 있으나 구현에 따라 thread를 사용했을 수도 있기 때문이다. 그래서 thread로 된 프로세스는 처음 backtrace가 죽은 위치를 보여주는게 아닐 수도 있다는 의미이다. 그럼 어떻게 다른 thread의 backtrace를 볼 수 있을까? 첫번째로 thread가 있는지부터 확인해야한다. info thread info threads info thread or info threads 명령어로 확인해보자. 위와 같이 process에서 2개의 thr.. 2021. 9. 13.
코틀린 id 인식 안될 때 해결방법 id 인식 안될 때 해결 방법입니다. kotlin-android-extensions 를 추가합니다. 위치는 build gradle(Module: xxx.app) plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-android-extensions' } 그리고 나서 우측 상단의 Sync now를 눌러주면 적용됩니다. 2021. 9. 11.
반응형