분류 전체보기(53)
-
[CS] 아스키코드(ASCII), 유니코드(Unicode), UTF-8 에 대해 - 컴퓨터 내부의 언어 체계
최근에 "한 권으로 읽는 컴퓨터 구조와 프로그래밍"이라는 책을 읽는 중이다. 내용이 굉장히 알차다. 제목 그대로 컴퓨터의 구조와 내부에서 어떻게 일을 처리하는지 등등. 평소에 스스로 CS 쪽 지식이 부족하다고 느껴 관련해 인강을 듣거나 운영체제 책을 사서 읽었는데, 컴퓨터 구조 쪽은 따로 공부해본 적이 없어서 이번 기회에 책을 통해 공부해보려고 한다. 매일 조금씩 공부한 내용들을 모아 일주일에 한 번씩 이렇게 글로 정리해 올리려고 한다. 오늘은 책의 중 컴퓨터에서 텍스트를 표현하는 방법에 대해 정리하려고 한다. 컴퓨터는 어떻게 말할까? 우리나라 사람들은 한글을 사용해 소통하는데, 컴퓨터는? 컴퓨터는 비트를 사용해 말한다. 즉, 컴퓨터는 비트 체계를 통해서만 소통할 수 있어! '비트'라는 단어는 2진법을 ..
2021.07.31 -
HTTPS 통신 원리 쉽게 이해하기 (Feat. SSL Handshake, SSL 인증서)
이 글을 쓰게 된 이유는,, 나의 평소 HTTPS 에 대한 지식은 HTTPS 가 암호화된 네트워크 통신 프로토콜이고 HTTPS 를 사용한 네트워크 통신에서는 주고받는 패킷을 까도 데이터가 암호화되어 있어 안전하다! 이 정도였다. 그래서 평소에 근데 어떻게 암호화된 데이터를 서버와 클라이언트는 복호화하고 서로 어떻게 신뢰하지? 등의 원리가 항상 궁금했었는데, 이번 기회(원래 안드로이드 SSL Pinning 공부하다가,, 여기까지 와버렸다^^)에 아주 깔끔하게 이해해버렸다. 너무 시원해 !!!! 목차 HTTPS 기본 개념 SSL 인증서란, 발급 과정 및 원리 SSL Handshake 동작 원리 (와이어 샤크로 패킷까지 까 봤다) HTTPS 가 뭐야? 혹시 잘 모르는 분들을 위해 짧은 개념 설명. Hypert..
2021.07.25 -
[Android] Fragment에서 viewModel 접근을 onAttach() 이후에 해야하는 이유
TL;DR: Fragment 에서 아래와 같이 viewModel 생성했을 때, onAttach() 메서드가 호출된 이후에 viewModel 에 접근해야 한다. private val viewModel by viewModels() 올바른 접근 (⭕️) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) arguments?.apply { viewModel.initAddTask(getInt(ARG_TASK_ID).toLong()) } } 올바르지 않은 접근 (❌) override fun onAttach(context: Context) { super.onAttach(context) arguments?.appl..
2021.07.17 -
[Linux] grep 명령어 사용하기 - 정규표현식을 사용하여 유용하게
grep은 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어이다. 최근 회사에서 안드로이드 프로젝트 내 코드에서 특정 형식의 문자열을 찾아서 통계를 내는 기능을 구현할 때 이 grep 명령어를 아주 유용하게 썼다. grep 은 정규표현식도 지원하기 때문에 내가 원하는 문자열을 쉽게 찾을 수 있다. grep 기본 문법 PATTERN : 내가 찾고자 하는 문자열 [FILE...] : 내가 찾고자 하는 문자열을 찾을 파일 또는 디렉토리 경로 grep [OPTION...] PATTERN [FILE...] grep 맛보기 test.txt 라는 파일 내용은 아래와 같고, 나는 이 test.txt 파일에서 "pizza" 라는 단어를 찾고 싶다! 이 때, grep "pizza" test.txt 라는 명령어를 ..
2021.07.13 -
[Shell Script] 배열(array)과 Map 사용하기
Shell script 에서도 배열과 map 자료구조를 사용할 수 있다. 최근에 회사에서 shell script 를 통해 특정 리스트의 통계를 내야해서 map 구조가 필요했었는데 이렇게 쓸 수 있다니 너무나 유용했다. 개발 환경 bash 버전 : 5.1.8 bash 버전은 bash --version 을 통해 확인할 수 있다. bash 버전별로 명령어가 안먹히는 경우가 있으니 참고할 것 !!!!! 나의 경우에는, 처음에 map 기능을 사용하려고 하는데, bash 버전이 낮아 자꾸 원하는대로 되지 않았다. 엉엉. 관련해서는 아래 map 섹션에서 자세히 설명하겠다. 배열(array) 아래와 같이 사용할 수 있다. # 기본 문법 변수=(값1 값2 값3 그외 쭉쭉) # 예시 array=(V1 V2 V3 V4 V5..
2021.07.12 -
[Shell Script] 기본 문법 알아보기 - if 문, for 문
최근에 회사에서 Jenkins 에서 스크립트 파일을 돌려 하는 작업을 진행했다. 오랜만에 shell script 를 짜다 보니 이런 기본 문법들까지도 찾아보면서 하느라 시간이 들었다. 이번 작업 때 사용한 문법들을 정리해놓고 앞으로 찾아봐야지 🧤🧤🧤 또한 나같은 분들께 도움이 됐으면 하는 마음에 정리해 놓는다. 우선 여기에는 가장 기본인 if문과 for문을 정리해놓고, 나머지는 따로 포스팅하려고 한다. (내일의 나를 믿는다..... 🐶) if 문 if [ 조건문 ]; then echo "if" elif [ 조건문 ]; then echo "else if" else echo "else" fi 핵심은, if [ ] 로 시작하고 fi 로 끝난다는 것 !!! 이것만 알면 끝. if 만 사용할 경우에는 아래와 같이..
2021.07.11