굳이 회고를 써야하나 하는 시점에서 지금 잘하고 있는가를 고민하다가 회고를 쓰면서 정리하기로 했다. 작년에는 블로그가 인생의 절반이었기 때문에, 블로그를 중심으로 회고가 이루어졌는데 올해에는 이런 저런 많은 일들이 있었으니 주제별로 세션을 나눠 회고를 해야겠다. 블로그 회고 1. 포스팅 성격에 따른 플랫폼 분리작년에는 티스토리에만 주구장창 포스팅을 했었다. 포스팅의 성격은 신경쓰지 않고 한 플랫폼에서 카테고리만 나눠 포스팅을 했더니 뭔가 모듈화가 되어있지 않은 느낌을 받았다. (이 정도면 거의 병이다.) 그래서 미디엄이라는 플랫폼에는 에세이 형식의 글을 포스팅하기로 했고 GitHub 호스팅을 통해 새로 블로그를 만들어서 프론트엔드 분야와 각종 Tool들을 소개하는 포스팅을 하기로 했다. 그리고 세 플랫폼..
Refactoring 1편 컴퓨터가 인식 가능한 코드는 바보라도 작성할 수 있지만, 인간이 이해할 수 있는 코드는 실력있는 프로그래머만 작성할 수 있다. What, 리팩토링이란 무엇인가 정의 리팩토링이란 겉으로 드러나는 기능은 그대로 둔 채, 아랑보기 쉽고 수정하기 간편하게 소프트웨어 내부를 수정하는 작업을 말한다. 리팩토링 기법을 연달아 적용해서 겉으로 드러나는 기능은 그대로 둔 채 소프트웨어 구조를 변경한다. 목적 첫째, 리팩토링은 소프트웨어를 더 이해하기 쉽고 수정하기 쉽게 만드는 것이다. 둘째, 리팩토링은 겉으로 드러나는 소프트웨어 기능에 영향을 주지 않는다. Why, 리팩토링은 왜 필요한 것인가 1) 소프트웨어의 설계를 보다 더 나아지게 한다. 2) 코드를 더 이해하기 쉽게 만든다. 3) 코드에..
[JS] Javascript 작동 원리에 대해서, Event LoopJavscript를 공부하다 보면 이런 말을 종종 듣는다. 싱글스레드 기반으로 동작하는 자바스크립트 이벤트 루프를 기반으로 하는 싱글 스레드 Node.js 이런 말은 많이 들었지만 구체적으로 내부 원리에 대해 간단하게라도 설명하는 글은 보기 힘들다. (초심자 입장에서는 쉬운 내용이 결코 아니라고 생각한다.) 이번 포스팅에서는 "정말 싱글 스레드인가?", "싱글 스레드의 정체는 무엇이며, 어떻게 싱글 스레드인가?" "이벤트 루프는 또 무엇인가?" 등등에 대해 정말 간단히 알아보기 위해 자바스크립트가 동작하는 환경(Environment)과 자바스크립트를 해석하고 실행시키는 엔진에 대해서 알아본다. Javascript Engine ?일단 한 ..
[보안] SQL Injection SQL Injection 이란 Web hacking 기법 중 하나이다. 웹 애플리케이션의 뒷단에 있는 Database에 질의(쿼리를 보내는 것)하는 과정 사이에 일반적인 값 외에 악의적인 의도를 갖는 구문을 삽입하여 공격자가 원하는 SQL 쿼리문을 실행하는 기법이다. 주로 사용자가 입력한 데이터를 제대로 필터링, 이스케이핑 하지 못했을 경우에 발생한다. 요즘의 거의 모든 데이터베이스 엔진은 유저 입력이 의도치 않은 동작을 하는 것을 방지하기 위해 escape 함수와 prepared statement를 제공한다. SQL Injection 공격의 종류에는 크게 세 가지 유형이 있다. 인증 우회 (AB : Auth Bypass) 데이터 노출 (DD : Data Disclosu..
[SpringBoot] WebSocket을 활용한 채팅 구현하기 Spring WebSocket이란? Spring 4.0 부터 지원하고 있으며 공식문서에는 Real-time full duplex communication over TCP 이라고 설명이 되어 있다. WebSocket 프로토콜 RFC 6455는 클라이언트와 서버간의 전이중, 양방향 통신과 같은 웹 응용 프로그램을 위한 중요한 기능을 정의한다. XMLHttpRequest, 서버 전송 이벤트 등을 포함하여 웹을 보다 interactive하게 만드는 기술이다. WebSocket은 메시징(Messagine) 아키텍쳐를 의미하지만 특정 메시징 프로토콜의 사용을 요구하지는 않는다. TCP를 통한 매우 얇은 레이어로, 바이트 스트림을 메시지의 스트림으로 변..
- Total
- 1,373,458
- Today
- 37
- Yesterday
- 529