전체 글
-
가비지 컬렉션, 컬렉터(Garbage Collection)란?Programming/java 2020. 3. 1. 16:37
Garbage Collection, 줄여서 약어로 GC라고도 부른다. 영어로 그대로 읽어서 가비지 컬렉션이라고 부른다. 메모리 관리 방법 중에 하나로, 시스템에서 더이상 사용하지 않는 동적 할당된 메로리 블럭을 찾아 자동으로 다시 사용 가능한 자원으로 회수하는 것으로 시스템에서 가비지컬렉션을 수행하는 부분을 가비지 컬렉터라 부른다. 가령 C언어는 프로그래머가 메모리를 할당한 뒤 수동으로 해제까지 직접 해 줘야 한다. 그래서 메모리를 할당해놓고 필요없어진 뒤에도 해제를 안하는 일 등이 생겨서 메모리 누수가 생기거나 거꾸로 해제했던 메모리를 다시 사용하거나 하는 실수 등에 버그가 양산된다. 이러한 문제들을 해결하기 위해서 제시된 것이 가비지 컬렉션이다. 이 가비지 컬레션 기능을 채택한 언어의 경우에는 이 가..
-
(python)'is None'과 '==None'의 차이점Programming/python 2020. 2. 27. 16:25
특정한 값이 있는지를 검사할 때 자주 사용하게 되는 문법인 is None과 ==None. 값이 넘어오고나 전처리 과정에서 이 값이 존재하는지를 확인하고 싶을 때 주로 사용하게 된다. http://jaredgrubb.blogspot.com/2009/04/python-is-none-vs-none.html 간단하게 요약해서 설명하자면 True로 받을지 그 자체를 받을지의 문제다. class Noo: def __eq__(self,other): return True Noo=Noo() print(Noo==None) # True print(Noo is None) # False Noo는 None 오브젝트를 상속받는다. 비교 연산자는 Noo를 None으로 받아서 True로 처리하지만 is None 은 오브젝트 그 자체로..
-
세션과 쿠키, 그리고 캐시의 차이점은?Programming 2020. 2. 24. 00:07
우선 가장 먼저 세션과 쿠키, 캐시에 대해서 말하기 전에 HTTP의 특징에 대해 우선적으로 알아야한다. HTTP(Hypertext Transfer Protocol)은 브라우저 같은 응용 프로그램을 통해 사용자와 서버 사이에 전송하는 프로토콜이다. 인터넷 주소 앞에 달려있는 HTTP가 바로 이 HTTP 프로토콜을 이용하고 있다는 뜻이기도 하다. HTTP는 연결 상태를 유지하지 않는 비연결적인 프로토콜이라는 특징을 가지고 있는데, 예를 들어 브라우저를 통해 사용자의 요청에 따라 서버에 접속하여 요청에 대한 응답의 데이터를 전송 한 뒤에 연결을 종료한다. 이런 간단한 과정 덕택에 전산 자원이 적게 든다는 장점이 있지만 연결이 지속적이지 않기 때문에 사용자와 연결을 종료한 뒤에 추가적으로 요청을 처리할 수 없다..
-
애자일 방법론과 TDD 그리고 BDDProgramming 2020. 2. 2. 16:30
개요 클린 코드나 리팩토링 관련된 서적을 읽으면서 자주 등장하는 개념이고 다른 개발 블로그를 둘러봐도 '애자일'한 작업 환경이라던지 TDD 또는 BDD 등의 용어는 자주 접하게 된다. 그중에서도 최근 가장 떠오르는 것은 단연 TDD인데, TDD에 대해서 알아보기 앞서서 애자일 소프트웨어 개발(Agile software development)은 무엇인지를 먼저 알아야한다. 애자일한 방법론이 무엇일까를 고민하면서 등장한 것이 바로 TDD이기 때문이다. 그 이외에 여러가지의 애자일을 실천할 수 있는 다양한 기법들이 존재한다. 이러한 기법들을 살펴보기 전에 애자일은 무엇일까, 애자일하게 작업한다는 것은 무엇을 의미할까?에 대해서 우선 알아보자. 애자일 방법론 애자일 소프트웨어 개발 선언 우리는 소프트웨어를 개발..
-
[SQL] DCL, DML, DDL 약어 설명과 명령어Programming 2020. 1. 28. 00:35
개요 SQL이란 Structured Query Language. 구조화 질의문의 약어로서 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수한 목적의 언어이다. 쉽게 말해서 관계형 데이터베이스에서 한정적으로 사용되는 프로그래밍 언어라고 할 수 있다. SQL 문법에는 크게 세 가지 종류로 구분될 수 있는데, 바로 DDL, DML, DCL이 바로 그것이다. 면접 뿐만이 아니라 컴퓨터 활용능력, 정보처리 시험에서도 자주 등장하는 내용이므로 간략하게 정리하면 좋다. 흔히 DB에서 말하는 CRUD는 모두 이 명령어들을 통해서 처리되고 실행된다. DDL(Data Definition Language) : 데이터 정의 언어로 풀어 말할 수 있으며 스키마를 정의 하거나 조작하기 위해 사용한..
-
고졸 개발자로 2019년 살아남기log 2019. 12. 29. 02:32
이글은 회고록의 목적성을 담고 있다. 올해에 겪은 일들과 과정들을 풀어서 적고, 어떤 것들이 부족했는지 앞으로는 어떤 것들이 필요한지를 점검하고자 한다. 회고록을 남기게 된 계기 https://ryan-han.com/post/memoirs/memoirs2019/ 체대 출신 개발자의 2019년 회고 | Integerous DevLog 체대 출신 개발자의 2019년 회고 2019/12/22 이 글은 개인적인 회고록이다. 그래서 독백체 2019년의 경험과 생각을 정리하고자 한다. 1. 요란한 빈 수레 1년 전 오늘, 체대 출신 개발자의 2018년 회고를 블로그에 올렸다. 그런데 이틀 간 페이지뷰 2만을 넘기며, 과분한 관심과 감사한 응원을 받았다. 특히 평소에 우러러보던 개발자분들이 자극 받았다는 피드백을 주..
-
애플워치5말고 애플워치4를 구매한 이유Review/IT 2019. 12. 25. 14:50
사실 맨 처음부터 애플워치4를 구입하려던 것은 아니었습니다. 기왕 사는 것, 가장 최근에 나온 애플워치5를 사는 게 좋지 않을까?라고 생각했고 애플워치5를 알아보려던 차에 내가 구매하고 싶은 애플워치5 나이키 그것도 블랙색상만 딱 절묘하게 품절이었습니다... 시간이 더 지나니 화이트색상도 품절되었고 일주일 정도 기다리다가 지쳐갈 때즈음 워치5와 4의 차이점에 대해서 소식을 듣게 됩니다. 애플워치5와 애플워치4의 차이점 애플워치5와 애플워치4의 가장 큰 차이점이라고 한다면 바로 디스플레이가 상시 표시된다는 점입니다. 다른 말로 한다면 베터리가 비약적으로 발전되었다고 할 수 있습니다. 평시에는 슬립모드로 작동하다가 손목을 올리거나 디스플레이를 누르면 애플워치4와 같게 최대 밝기로 돌아옵니다. 그리고 나침반 ..
-
SSL 인증서 적용이 실패했다면Programming 2019. 12. 17. 12:41
메일이나 SSL 인증서를 제공하는 사이트에서 다운받은 crt파일이 있을 것이다. 보통은 2개인데, 3개 이상이 될 수도 있다. 서버에 적용하기 위해서는 bundle파일 하나로 합치는 과정을 거치게 되는데, cat 명령어를 통해서 하나로 합쳐준다. 합치는 순서도 중요한데 도메인 인증서-체인 인증서-루트 인증서 순서이다. 예를들어 cat bundle.crt chain-bundle.crt authority.crt > ssl-bundle.crt 이런식으로 세개의 파일을 합치는데 cafe24의 경우는 이런식으로 이름이 다르다. 당황하지말고 인증서, chain, chain_all순으로 합치면 된다. $ cat ssl.crt chain_ssl.crt chain_all_ssl.crt > ssl.crt 안됐을 때 확인해..