전체 글 199

15회 정보보안산업기사 실기 시험 후기

지난 7월 11일에 떨리는 마음으로 치른 정보보안산업기사 실기시험은 생각보다 어렵지 않게 나왔다고 생각하지만 역시나 예상치 못한 부분에서 문제가 나와 당황한 부분이 있었다. 다행히 그건 3문제 중 2문제를 고르는 실무형 문제였기 때문에 다른 2문제를 풀어서 점수를 좀 더 벌 수 있었지만.. 필기시험때도 그렇고 예상치 못한 부분에서 문제가 출제되기 때문에 정말 방심할 수 없는 것 같다. 6월 말 기말고사가 모두 끝난 후 7월 초부터 급하게 준비하기 시작해서 2주동안 하루종일 알기사 문제집만 붙잡고 있었던 것 같다. 약 3일 정도를 남기고서야 이론서를 다 볼 수 있었기 때문에 3일동안 하루에 100쪽 그 이상으로 기출문제집을 붙잡고 있었던 것 같다. 후반부의 정보보호 일반 분야(암호학이라던가)와 법규는 거의..

참가 후기 2020.07.16

무엇을 단위 테스트할 것인가?(Right-BICEP)

이번에도 역시 JUnit을 활용한 단위 테스트 도서를 읽으면서 새로이 배운 점을 적어보려 한다. 메서드나 클래스의 코드에 있는 수많은 버그들을 단번에 찾아내기란 쉽지 않고 일일히 들여다본다고 해도 예상치 못한 곳에서 문제가 발생하기 마련이다. 경험이 쌓인다면 대략 어느 부분에서 버그가 나올 지 잘 알게 되겠지만 그렇지 않은 경우 Right-BICEP과 같은 원칙을 통해 테스트 대상을 좁혀나갈 수 있다. Right, 결과가 올바른가? 테스트 코드는 무엇보다도 기대한 결과를 산출하는지 검증할 수 있어야 한다. 이는 아래와 같은 테스트 코드를 의미한다. @Test public void answerArithmeticMeanOfTwoNumbers(){ ScoreCollection collection = new S..

기타 2020.01.28

좋은 단위 테스트의 속성(FIRST)

이전 포스트에서 언급한 JUnit 단위 테스트 도서에서 좋은 단위 테스트가 가져야 할 요건에 대하여 설명하고 있기에 옮겨적어본다. 만약 단위 테스트가 다음 중 하나의 경우라도 해당된다면 이는 뭔가 문제점이 있고 개선이 필요하다는 것을 의미한다. 테스트를 사용하는 사람에게 어떤 정보도 주지 못하는 테스트 산발적으로 실패하는 테스트 어떤 가치도 증명하지 못하는 테스트 실행하는 데 오래 걸리는 테스트 코드를 충분히 커버하지 못하는 테스트 구현과 강하게 결합되어 있어 작은 변화에도 다수의 테스트가 깨지는 테스트 수많은 설정 고리로 점프하는 난해한 테스트 이를 해결하기 위해 단위 테스트가 가져야 할 다섯가지 원칙을 제시하고 있으며 이는 Fast, Isolated, Repeatable, Self-validating..

기타 2020.01.27

단위 테스트에서 테스트 코드를 조직화하는 방법

요즘 "자바와 JUnit을 활용한 실용주의 단위 테스트"라는 책을 읽고 있는데 그동안 프로그램을 개발하는 여러 도서를 읽어봤지만 이런 소프트웨어 공학적인 내용은 처음이라 차근차근 읽으면서 많은 것을 배우고 있다. 지난 학기(2019-2)에는 소프트웨어 공학 과목을 배우면서 단위 테스트, 통합 테스트 같은 내용도 배웠기 때문에 기억하고 있었는데 객체지향 프로그래밍 과목에서 프로그램을 설계하면서 기능을 테스트하는 용도로 JUnit을 사용하는 것을 보고 안그래도 안드로이드 프로그래밍 등으로 익숙해진 자바 언어를 사용하는 JUnit을 이용해 단위 테스트를 한번 경험해보자는 목적으로 읽게 되었다. JUnit으로 어떻게 테스트를 진행하고 어떤 기능이 있는지는 추후 도서를 다 읽은 다음에 쓰는 게 맞다고 생각하지만 ..

기타 2020.01.24

TCP 4-way handshake 란?

지난번에 TCP는 3-way handshake를 통해서 연결을 성립한다고 하였다. 그렇다면 연결을 종료할 때는 어떻게 될까? 이번에는 지난번에 비해 한 차례가 늘어난 4-way handshake를 수행하게 된다. 위 사진에서 보다시피 총 4번의 데이터 통신이 연결을 해제하기 위해 오고간다. 왜 그냥 끊어버리지 않고 귀찮게 여러번 패킷을 주고받는 걸까? 그 이유는 TCP의 신뢰성을 보장하기 위함에 있다. 신뢰성 있는 연결인 TCP 특성상 보낸 데이터를 잘 받았는지, 그에 대한 잘 받았다는 응답 역시 잘 받았는지 등을 양측에서 확인하게 된다. 이때 통신하던 중 예기치 않게 연결이 종료된다면 아무래도 TCP의 신뢰성에 큰 영향을 끼칠 수밖에 없다. 그러므로 연결 종료 시에도 양측이 서로 확인하에, 즉 당사자가..

용어 정리 2019.08.12

심볼릭 링크란 무엇일까

리눅스 프로그래밍이나 관련 수업을 듣다보면 '심볼릭 링크'라는 말을 듣게 된다. 이것은 무엇일까? 간단하게 생각하면 Windows 운영체제의 바로가기를 예로 들 수 있다. 바로가기를 클릭하면 원본 파일을 실행하게 되는 것처럼 심볼릭 링크도 원본 파일을 가리키는 '링크'이다. 하지만 다른점이 있는데 바로 '하드 링크'와 '소프트 링크'로 종류가 나뉜다는 것이다. i-node(아이노드) 이를 구분하기 전에 리눅스 파일 시스템의 'inode'란 것에 대해 알아보자. inode는 시스템의 파티션에 있는 각 파일에 대한 정보를 기억하는 120바이트의 고정된 크기의 구조체이다(출처: 알기사 정보보안기사/산업기사). 이는 파티션의 inode list에 저장되는 메타데이터로써 파일에 대한 정보라 하면 파일타입, 접근권..

리눅스 2019.07.20

슬기로운 인턴생활 참가후기

지난 7월 6일 GDG Campus에서 열린 '슬기로운 인턴생활' 이라는 세미나에 다녀왔다. 총 5명의 발표자가 각각 진행하는 5개의 세션과 질의응답 시간으로 구성되었는데 LINE 재직자, 대학생, 일반인 등 다양하게 구성되었다. 이 주변은 처음 가보다보니 빌딩 지하에 있는 발표장소를 그냥 지나쳤다가 다시 돌아오느라 더워 죽는줄 알았다. 현대 기업 건물인지 1층에 자동차 등이 놓여져 있었는데 안내원에게 물어보니 지하2층에서 진행하고 있다고 했다. 아무래도 정시각보다 조금 늦게 간 만큼 자리가 애매해서(덥기도 했고) 그냥 뒤에 바닥에 앉아서 들었다. 이걸 봤는지 나중에 MC가 참가자들에게 자리를 조금 밀착해서 공간을 내어달라고 요청했기 때문에 여유롭게 뒷자석에 앉아서 들을 수 있었다. 진행은 일정보다 조금..

참가 후기 2019.07.11

Ubuntu Fest in Daejeon 참가 후기

지난 5월 26일에 열렸던 Ubuntu Fest에 참가한 후기를 적어보고자 한다. 행사는 크게 4가지 세션(2개의 메인, 2개의 미니 세션)으로 진행되었다. 원래 메인 세션이 하나 더 있었는데 참가자가 갑작스럽게 불참하게 되어서 2개로 진행되었다. 장소는 충남대학교 공과대학에서 진행되었는데 나 역시 같은 충남에 있는 대학교에 다니지만 대전과 천안은 거리가 좀 있어서 처음 가본 곳이라 새로운 기분이었다. 확실히 지리적으로 더 잘 되어있기에 부럽기도 했고... 학교는 국립대학이라 그런지 넓은 편이었는데 교내까지 시내버스가 다녀서 편하게 들어올 수 있었다. 상대적으로 우리학교보다 학생들의 수가 많아서인지는 모르겠지만 교내 학생들이 많이 참가했다는 인상을 받았다. 다들 이런저런 얘기를 하면서 장래에 대해서 얘기..

참가 후기 2019.07.08

Ask Company 대전 세미나 참가 후기

5월 19일 대전광역시 한남대학교에서 열린 Ask Company 파이썬 세미나에 다녀온 후기를 적어보고자 한다. 약 3시간 정도 진행된 짧은 세미나기에 많은 내용이 오고가진 않았으나 파이썬의 능력과 편리함, 그리고 그 가능성을 볼 수 있는 시간이었다. Ask Company에서 주최하였으며 유클리드소프트, Goorm IDE 등에서 후원을 하여 진행된 세미나였는데 개념 설명보다는 주로 파이썬 라이브러리에 대한 설명과 그를 이용한 간단한 시연으로 진행되었다. 세미나의 목적 Ask Company 개발/운영자인 '이진석'씨의 말에 따르면 이번 세미나의 목적은 '대전을 중심으로 파이썬 활용 DNA를 전국에 널리 전파'하는 데에 그 목적이 있다고 하였다. 그러면서 파이썬은 데이터 분석, 머신러닝에 국한되지 않고 또한..

참가 후기 2019.07.04