
사이트를 개발하는데 있어 우리가 가장 중요하게 알아둬야할 요소 중 하나는 보안이다. 내가 지난 프로젝트들을 수행함에 있어 보안이 숭숭 뚫려있는 사이트를 막아보겠다고 난리를 쳤던 것을 생각하면 정말 아직도 아찔해지는 기억이다. 사실 보안이라는게 외부의 침입을 막고 해커가 마음대로 서버를 헤집어 놓을 수 없도록 하고 만약 침투에 성공했다고 하더라도 서버에 저장되어있는 데이터를 함부로 가져갈 수 없도록 해야하며 만약 가져가더라도 데이터가 암호화 되어있어서 데이터가 무용지물이 되도록 하는 것이 보안인데 개발같은거 잘 모르고 해커 같은거 무서워하는 우리로써는 참으로 배우기 힘든 분야다. 어떻게 시작해야할지, 어떤 책을 봐야할지, 전문적으로 배우려고 학원에 가려고 해봐도 제대로 배울 수나 있을지. 잘 모르겠을 때 ..
안녕하세요. 블로그를 읽어주시는 독자분들. 반갑습니다. 읽어주시는 분들이 많지 않을거라고 생각한 취미삼아 만든 블로그에 거의 1년 넘도록 방치하다 이제 돌아왔더니 많은 댓글들이 남겨져 있어서 큰 감동을 받았습니다. 그간 회사를 그만두고 프리랜서로 일하는 개발자로 프로젝트를 쉴 틈없이 연달아 3개를 진행하게 되면서 블로그에 글을 올릴 생각을 못했네요. 죄송하게 생각합니다. 이전에는 그냥 개발자로 일만 했는데 이제는 TA나 PM 일을 맡기는 바람에 몸이 열개라도 부족한 상황이었어요. 어떤 기술에 대해 결정해야하고 검토해야하고 프로젝트 구성원들에게 컨벤션을 나눠주고 문제들을 해결해주고 방법론을 제시한다는 일이 쉽지 않다는 것을 이번에 매우 많이 깨닫게 되었습니다. 매번 프로젝트 할 때마다 말썽피우고 사고치고 ..

어떻게 만들지, 어떤 패키지를 활용할지 지난 시간에 대충 계획을 세웠으니 이제 프로젝트를 만들어보도록 하자. 폴더를 하나 만들고 거기에 npm init -y 명령으로 package.json 파일을 생성하자. $ npm init -y 이제 당장 생각나는 패키지들을 인스톨 해보자. koa koa-router passport-jwt sequelize $ npm i -save koa koa-router passport-jwt sequelize 이렇게 설치해놓고 생각해보니 로그인 처리를 하려면 POST 방식으로 데이터를 받아야하고, Restful API 주제에 CORS 이슈도 생각을 못한 것이 떠올랐다. 그래서 아래의 패키지들을 더 인스톨 하도록 하자. koa-bodyparser koa-cors2 koa-cors..

내가 이번에 Node.js 로 Restful API 웹 서버를 만드려고 이것 저것 알아보면서 뭘 섞어야 좋은 결과물이 나올지 연금술사 마냥 이 패키지 저 패키지 이리저리 섞고 있었더랬다. 일단 Restful API 를 만드는 몇가지 조건은 아래와 같다. DB와의 연동은 ORM(Object-Relational Mapping)으로 할 것 로그인 방식은 Json Web Token(JWT) 방식으로 진행할 것 웹 서버는 Restful API만 지원하므로 웹 페이지 랜더링 필요없다. 그래서 일단 Node.js에서 웹서버 패키지를 찾아보았다. 후보지는 두개였는데 하나는 Express, 다른 하나는 Koa 였다.(Hapi는 뭐랄까 코딩방식이 내 스타일과는 달라서 후보에서 제외되었다.) Express가 IBM의 Str..

CSS에서 간단한 변수를 선언하고 사용할 수 있다는 사실에 대해서 알고 있는 사람은 알겠지만 모르고 있는 사람들도 있을 것 같아 친절한 내가 소개하려고 가져왔다. 일단 :root 가상선택자에 대해서 먼저 이야기할텐데 그 이유는 CSS의 변수도 지역 변수, 전역 변수 같은(?) 개념이 있기 때문이다. CSS의 변수의 접근은 자신의 부모 엘리먼트에 선언된 변수에만 접근할 수 있다. 무슨 이야기냐 하면 아래의 이미지를 보자. 왼쪽의 그림처럼 엘리먼트를 HTML로 만들었다고 했을 때 오른쪽의 CSS를 적용했다고 하자. box1에 정의한 변수는 box1의 자식 엘리먼트인 yellow에는 전달이 되지만 box2에서는 box1의 변수에 접근 할 수 없음을 보여준건데..... 보기 힘든건 이해한다. 암튼 위의 코드를 ..

얼마 전에 내 좁은 원룸에 55인치 TV를 들였다. 그 덕에 TV는 내 삶의 질을 높여줬지만 사람의 욕심은 끝이 없는 법. 더 좋은 소리를 듣고 싶어진거다. 그래서 한 2주 정도 고르고 고르다가 적당한 가격에 적당한 사이즈와 내가 ARC 모드를 지원하는 사운드 바를 찾았는데 최대한의 가성비라고 판단된 BA-TS1을 골랐다. 리뷰에는 베이스가 약하다는 평이 있었지만 나처럼 오피스텔 사는 사람한테 큰 베이스 소리는 오히려 부담이 되기 마련이라 신경을 쓰진 않았다. 주문을 하고 일주일정도 기다려서 배송받았다. 롯데닷컴이 배송이 많이 늦다. 암튼 배송을 받고 포장을 뜯었다. 오, 사실 개인적으로는 브릿츠가 음질로는 저가모델이라 크게 기대는 안했지만 뭔가 박스 디자인을 보니 설래는건 어쩔 수 없는 모양이다. 박스..

요즘은 아니고 한참되긴 했지만 Vue.js 만큼이나 React가 인기라서 이거 안하고 넘어갈 수는 없겠다 싶어서 카테고리 하나 늘리고 React를 시작해보기로 결심했다. https://reactjs-kr.firebaseapp.com/ 에 접속해보면 React가 우리를 반겨줄거다. 물론 반겨준다고 했지 React가 쉬울거라곤 하지 않았다. 요즘 라이브러리들이 다들 똑같이 "우리 라이브러리는 배우기가 매우 쉬워요. 자 보세요. Hello,World를 화면에 표시해보는 것부터 시작해볼까요?"라고 하지만 중반 이후 부터는 뭔 소리를 하고 있는지 알 도리가 없는 요상한 말을 하면서 "자 이제 이것도 해보시지?" 하는 것 마냥 우리를 조롱하는 것만 같지만 어쩔 수 없다. 우린 Hello, World에 속아넘갔으니까..

HTML과 CSS를 배우면서 나는 잘 몰랐는데 padding과 margin의 차이에 대해서 꽤 많은 사람들이 햇깔려한다는 사실을 최근에 알게 되었다. "여백이면 여백이지 안쪽 여백은 뭐고 바깥 여백은 뭐냐!" 라며 화를 낼법도 하지만 어떻게 보면 굉장히 디테일한 이런 분류는 보다 멋진 웹 디자인을 구현해 낼 수 있도록 여지를 만들어줬기 때문에 고마워해야 할지도 모른다. 어쨌든 padding과 margin에 대해서 이해하려면 먼저 HTML의 Box Model에 대하여 이해해야하는데 MDN에 보면 잘 나와있다.(https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/The_box_model#What_is_the_CSS_box_model) 일단 ..

Java를 처음 시작하는 사람은 JDK를 어떻게 설치하는지 그리고 그 방법도 개발자들 마다 천차만별이고, JDK 버전도 뭘 받아야하는지 종류도 너무 다양해서 너무 혼란스러운 것 같다. 그래서 Java를 처음 개발하는 사람들을 위한 JDK 와 Eclipse를 설치하는 것을 오늘 잠깐 이야기해보겠다. 일단 구글에서 JDK Download라고 검색해보자. 1. JDK Download 위 처럼 검색결과가 등장하거든 제일 위에 있는 Oracle로 가는 링크를 클릭하자. 지금은 JDK 12버전까지 릴리즈 되어있지만 우리는 "Java SE 8u221"를 설치할거다. 최신버전이 좋은게 아니냐는 사람들이 있겠지만 오라클이 마이크로 선즈를 인수하면서 JDK의 무료라이센스를 변경하는 바람에 8버전 이후 부터는 제약사항이 라..

정보처리기사 시험공부한다고 요즘 글 쓰는게 뜸했는데 슬슬 다시 글을 써볼까 생각을 하던 도중.. 내가 파이썬으로 이것저것 하는 걸 알려주면서 설치하는 방법을 끼워넣듯 알려줬지 제대로 글을 써서 남겼나.. 하고 생각이 들어서 파이썬을 처음 접하는 사람들을 위한 파이썬 설치하기를 포스팅하도록 하겠다. 이 글은 파이썬이 아니라 다른 어떤 언어도 접해보지 못한 프알못(프로그래밍 알지도 못하는) 분들을 위한 글이므로 내가 할 수 있는 최선을 다해 자세히 써 내려가보겠으나 궁금한 점 이 있을 땐 댓글을 남겨주면 개선하도록 하겠다. 일단 파이썬을 사용하기 위해선 파이썬을 설치해야하는데 이것을 두고 SDK(Software Development Kit) 혹은 인터프리터라고 한다.(인터프리터란 사람이 작성한 코드를 한줄 ..