목록전체 글 (138)
공부하는 스누피
sudo apt update sudo apt upgrade -y ## set password of root account passwd ## timezone sudo timedatectl set-timezone Asia/Seoul ## python sudo apt install python3.8 sudo apt install python3.8-pip sudo apt install python3.8-venv 유용한 초기설정 정보들 https://nuggy875.tistory.com/48 Ubuntu에서 python 명령어로 python3 실행 $ vim ~/.bashrc vim이나 아무 택스트 편집기로 .bashrc 파일을 실행시켜 아래 두 줄을 추가해준다. alias python='python3' alia..
Jenkins와 GitHub repo를 연동하면 trigger 발생시 빌드가 실행되면서 PR 페이지에 status check가 자동으로 추가된다. status check는 context(아이디 개념), message, status로 구성되어 있다. context는 status check의 구분 단위라서 status나 message만 바꾸고 싶은 경우 바꾸고자 하는 status check의 context를 사용해야 한다. 이때 status check의 context나 message, status는 Jenkins에서 자동으로 만들어주는거라 원하는 내용이 아닐 수 있는데, 대부분 프로젝트는 이걸 설정 페이지에서 바꿀 수 있지만 Multibranch Pipeline의 경우 불가능해서 JenkinsFile에서 커..
Overview SonarQube는 코드 분석으로 코드 품질과 보안을 향상시켜주는 소프트웨어다. 무료 버전인 Community Edition이 있고, 유료 버전인 Developer나 Enterprise도 있다. IntelliJ checkstyle같은 IDE plugin으로는 코드 품질 검사에 한계가 있는데, SonarQube에서는 코드 정적 분석뿐만 아니라 CI 툴과 연동하여 검사를 자동화시킬 수 있다. Sonarqube Community Branch Plugin으로 GitHub에 분석 결과를 comment로 남길 수도 있어 편리하다. 팀 과제로 SonarQube 연동 작업을 했던 내용을 간추려 가이드로 정리해보았다. SonarQube 설치 Linux CentOS7 환경에서 진행하였음 Prerequisi..
- Spark 2.1x부터 사용 가능한 from_json을 활용한다. - json 데이터를 위한 스키마를 먼저 정의해 두어야 한다. from pyspark.sql.types import StructType, StructField, StringType from pyspark.sql.functions import from_json, col df = spark.createDataFrame(dict_data) # json 데이터를 위한 스키마를 정의한다. schema = StructType( [ StructField('key1', StringType(), True), StructField('key1', StringType(), True), ] ) # from_json으로 json 데이터를 스키마에 맞추어 dat..
- Python 환경 ## DataFrame이란? 정형화된 scheme을 갖고 있는 Spark 데이터 구조. ## Dictionary를 DataFrame으로 만들기 data = [{'color': 'yellow', 'weight': 200}, {'color': 'yellow', 'weight': 200}] df = spark.createDataFrame(data) ## DataFrame 보기 # table 형태로 dataframe의 모든 데이터를 보여 준다. df.show() # dataframe에서 특정 인덱스의 데이터를 가져온다. df.take(index) # data schema를 볼 수 있다. df.printSchema() ## 데이터 필터링하기 - 필터링은 select * where~과 같은 역..
토비의 스프링은 개발자 필독서로 꼽히는 책으로, 특히 스프링을 다루는 백엔드 개발자들은 많이 들어본 이름일 것이다. 유명한 책이지만 권당 880 페이지에 달하는, 전공 서적과 맞먹는 분량 덕분에 완독하기 힘들다고 소문이 나 있다. 괜히 힘들다고 할 수록 정복하고 싶어지는 욕심이 나기도 했고, 당시 이펙티브 자바를 완독해 언어 보다는 프레임워크에 대해 알고 싶어서 스터디를 꾸려 완독에 도전해 보기로 했다. 네트워크, 컴퓨터 구조같은 비슷한 분량의 책을 혼자 독파한 적은 몇 번 있었지만, 토비의 스프링은 프레임워크를 다루기 때문에 학부생 대상인 전공 서적과는 결이 다르다고 느꼈다. 어떤 기술에 대한 개념을 다루는 것은 같은데 접근하는 방식이 달랐다. 주니어 개발자가 스프링으로 작은 프로젝트를 하면서 '이건 ..
사전처럼 바로 찾아 쓰는 알고리즘은 지금까지 구매해 놓고 한 번도 완주할 생각을 못 했던 책이었다. 책장에 꽂혀 있은 지 거의 몇 년이 되어 가는데 제대로 읽어 보지 못했던 것 같아 오랜만에 알고리즘을 복습하는 겸 꺼내 봤다. 책을 보니 몇 년 전에 내가 남겼던 흔적들이 보였는데, 정확히 시간복잡도를 계산하는 부분에서 밑줄과 메모가 끊겨 있었다. 왠지 그렇게 놔 두면 찝찝함으로 남을 것 같아서 제대로 책을 펴고 읽기 시작했다. 책 두께는 제법 두꺼웠지만 종이 재질이 외국 서적의 종이와 비슷해서 가볍고, 쪽수도 403쪽으로 그렇게 내용이 많지는 않았다. 이미 알고 있는 내용도 있어서 그런지 이틀 만에 완독할 수 있었다. 이 책은 제목처럼 사전같이 모든 알고리즘을 담고 있진 않다. 대신 저자가 유용하다고 생..
프록시 : 클라이언트의 입장에서 트랜잭션을 수행하는 중개인 프록시 vs 게이트웨이 프록시는 같은 프로토콜을 사용하는 둘 이상의 App을 연결하고, 게이트웨이는 서로 다른 프로토콜을 사용하는 둘 이상의 App을 연결한다. 프록시를 쓰는 이유 모든 트래픽을 볼 수 있고, 건드릴 수 있어 부가 기능을 제공할 수 있다. 보안을 강화할 수 있다. (방화벽 프록시) 프록시의 종류 1 - 쓰임에 따른 종류 보안 방화벽 웹 캐시 대리 프록시(Surrogate, 리버스 프록시) 콘텐츠 라우터: 콘텐츠의 종류에 따라 다른 웹 서버와 연결 익명화 프록시(Anonymizer) : HTTP 메시지에서 신원을 식별할 수 있는 특성을 제거해 익명성 보장에 기여함. 프록시의 종류 2 - 배치에 따른 종류 출구(Egress) 프록시:..