인생 첫 영어 회화(?)약 30살?을 향해 달려가는 동안 영어는 오직 수능, 전공과 같은 시험을 위해서만 공부했다.그래서, 나의 영어 듣기나 회화 실력은 독해 능력에 비해 형편없는 수준이었다."평소에도 영어 회화를 한 번쯤은 해보고 싶다"라는 생각은 막연하게 있었지만, 비용도 되게 비싸고 외국인과 말할 자신이 없어 시도하지 않고 있다가 회사의 복지로 링글 화상영어 수업권이 포함되어 있어 의도치 않게 영어 회화를 시작했다.링글의 좋은 점 👍[자유로운 시간 및 튜터 선택]우선, 가장 좋은 것은 튜터와 수업 날짜 및 시간을 자유롭게 내가 정할 수 있다는 것이다. 직장인이어서 퇴근 이후나 아니면 주말에 하는 것이 수업에 몰입할 수 있는데 이러한 부분이 자유로워 스트레스를 받지 않고 진행했다. [친절하신 튜터분..
1. What is TLS?TLS(Transport Layer Security) 통신 프로토콜은 네트워크에서 데이터를 안전하게 주고받기 위한 암호화 프로토콜로 실제 데이터를 주고 받기 전 암호화 기본 요소에 동의하는 HandShake 과정을 통해 안전한 데이터 교환을 진행한다. 2. TLS HandShake OverviewTCP 연결이 완료된 이후부터 TLS Handshake가 시작된다. 전체 흐름은 다음과 같다:ClientHello (Client ➡️ Server)ServerHello + Certificate + ServerHelloDone (Server ➡️ Client)Client Key Exchange (Pre-Master Secret Key Share) (Client ➡️ Server)Chang..
1. Lambda(람다) 함수란?Python에서 간결하고 즉각적인 계산을 할 때 유용한 기능으로 코딩테스트에 주로 활용된다. 일반적으로 def를 사용한 함수와 달리, 람다 함수는 한 줄로 간단하게 정의할 수 있는 익명 함수이다. 일반적인 함수를 정의하는 방법과 람다 함수를 정의하는 방법은 아래와 같다.(익명함수에 대해서는 아래 접은 글 참고✅)더보기익명함수란❓ def 와 같은 일반적인 방법으로 함수를 정의하고자 할 때는 함수명이 반드시 필요하다. 하지만 람다 함수의 경우 매개변수와, 표현식(연산) 만 필요로 하며 함수명이 필요하지 않다. 즉, 람다함수는 함수명을 필요로 하지 않기 때문에 익명함수로 불린다. # 람다 함수 선언 방법lambda 매개변수: 표현식# 일반적인 함수 선언 방법def add(x,..
원래 일상과 관련된 내용은 공개로 하지 않지만, 정말 행복한 일이 있어 공개로 작성하고자 한다 :) 1. 러닝 시작( + 부상을 곁들인)벌써 러닝을 시작한 지 약 6개월이라는 시간이 지났다. 처음 러닝 시작할 때만 하더라도 1.5km 정도밖에 뛰지 못하는 상태였기에 '10km라도 한 번에 뛰고 싶다'라는 목표 의식이 점차 생겼다. 러닝을 시작할 당시 "학창 시절에 축구 좋아했으니 잘 뛰겠지 뭐~"와 같은 생각을 가지고 자세는 신경 쓰지 않은 채 무작정 빠르게만 뛰었다. 그 결과 2주 만에 러닝을 할 수 없을 정도로 무릎 바깥쪽에 통증이 발생하였다. 이는 러닝할 때 다수 발생하는 '장경인대 증후군'이었으며, 개인 일정 상 병원을 가기에는 무리가 있어 유튜버 김계란 님의 영상을 보고 나홀로 재활을 시작하..
1. Error 내용apt-get update 명령어를 사용하여 업데이트를 진행하려고 하였으나 Fail to fetch 오류가 발생하여 정상적인 업데이트가 이루어지지 않았다. 해당 오류가 발생할 경우 apt-get update 명령어의 정상적인 실행이 불가능하며 apt install 명령어 또한 실행할 수 없다. 해당 오류 발생 당시 출력된 메시지는 다음과 같다.Ign:1 http://kr.archive.ubuntu.com/ubuntu jammy InReleaseIgn:2 http://security.ubuntu.com/ubuntu jammy-security InReleaseIgn:3 http://kr.archive.ubuntu.com/ubuntu jammy-updates InReleaseIgn:4 ht..
1. Dictionary 란?Key -Value로 이루어진 자료형으로, 다양한 형태의 값을 키로 지정할 수 있어 리스트보다 유연하다는 장점이 존재한다. Dictionary는 내부적으로 해시 테이블로 구성되어 있어 값에 접근할 때 시간복잡도가 O(1)로 매우 효율적이다. 리스트와 같이 순차적으로 검색해야 하는 자료형과 달리, Dictionary는 해시를 기반으로 특정 키를 더 빠르게 찾아낼 수 있다. Dictionary는 아래와 같은 두 가지 방법으로 선언할 수 있다.(딕셔너리명) = {}(딕셔너리명) = dict() List 자료형의 경우 최대 시간 복잡도가 O(n)이지만, Dictionary 자료형의 경우 키를 사용하여 바로 접근하기 때문에 최대 시간 복잡도는 O(1)이다. 따라서 데이터에 특정 요소에..
1. Dictionary 란?아래와 같은 형태로 선언할 수 있으며 Key -Value로 이루어진 자료형이다. 내부적으로 해시 테이블로 구성되어 있어 시간복잡도가 낮다는 장점이 존재한다. 또한, 인덱스가 List와 다르게 숫자가 아닌 다양한 형태로 지정이 가능하다.(딕셔너리명) = {}(딕셔너리명) = dict() List 자료형의 경우 최대 시간 복잡도가 O(n)이지만, Dictionary 자료형의 경우 최대 시간 복잡도는 O(1)이다.즉, Dictionary 사용이 가능하다면, Dictionary 사용하는 것이 시간적인 측면에서 유리하다는 것을 의미한다. 2. Dictionary의 내부 기능dict[(키 값)] 형태로 딕셔너리의 특정 키에 대한 요소에 접근할 수 있다.# 요소 접근print(dict2[..
정보처리기사 필기를 합격한 후 공부 과정을 기록하고 복습하기 위해 각 단원마다 중요한 부분만 정리하고자 한다. 소프트웨어 생명 주기요구분석부터 유지보수까지 전 공정을 체계화한 절차로 폭포수 모델, 프로토타이핑 모델, 나션형 모델, 반복적 모델 등이 있다. 각 모델의 특징은 아래와 같다. 소프트웨어 개발 방법론소프트웨어 개발 방법론은 소프트웨어를 개발하는 모든 과정에서 지속적으로 적용할 수 있는 방법을 의미한다. 크게 6가지의 방법론이 존재하지만 그 중 가장 중요한 것은 애자일 방법론이다.(필기에서도 다수 출제) 애자일 방법론에서 가장 중요한 것은 절차가 아닌 사람을 중심으로 하는 개발 방법론으로 보다 신속하고 유연한 대처가 가능한 방법론이다.(유연하게 대처한다는 점에서 폭포수 모델과 대비) 애자일 방..
1. Abstract2022년 말 등장한 AxLocker Ransomware는 일반적인 Ransomware와 다르게 파일을 암호화한 후 확장자는 변경하지 않는다는 특징을 가진다. 본 포스팅에서는 개인 PC 정보 및 여러 정보를 탈취하는 AxLocker Ransomware의 주요 행위에 대해서 설명한다. 상세한 행위를 분석하기 위해 DnSPY를 사용한 동적 분석을 진행하였으며, 구체적인 정보 탈취 목록 및 과정을 도출하였다. 2. 샘플 및 분석환경 정보샘플에 대한 Hash 정보 및 추후 정보를 탈취하는 Discord Server 주소는 Figure 1과 같다. 3. 상세 분석(정적 분석)Detect It Easy(DIE)를 사용하여 확인한 컴파일 유형 및 TimeStamp는 Figure ~과 같다. C/C..