요즘 프로젝트들은 대부분 프레임워크 기반으로 개발을 진행한다. 프레임워크 사용법만 익히면 웬만한 기능들을 큰 오류없이, 성능의 큰 손실 없이, 빠르게 개발할 수 있기 때문이다. 그런데, 프레임워크란 무엇인가? 라이브러리가 개발에 필요한 도구들을 단순히 나열해 놓은 것이라면, 프레임워크는 동작에 필요한 구조를 어느정도 완성해 놓은 반제품 형태의 도구라고 할 수 있다. (스프링 프레임워크는 단순히 빈 관리를 위한 IoC 컨테이너를 넘어서 웹 MVC 아키텍처와 보안, 모바일 등 다양한 분야의 기반 기술을 제공한다고 하는데, 지금은 일단 넘어가자) 따라서 프레임워크를 제대로 사용하기 위해서(그리고 프레임워크로 해결할 수 없는 요구사항들을 해결하기 위해서는) ‘동작’에 대해 알아야 하고, 이를 구현하는 ‘구조’ ..
경기창조혁신센터에서 열린 구글 클라우드 데이에 다녀왔다. 첫 번째 세션이 조대협 님이기도 했고, 경기창조혁신센터 9층의 coworking space도 구경하러 갔다. 우선, coworking space는 대만족이었다. (각 공간의 배치도 좋았고, 조명도 적절했으며, 의자도 좋아서 오래 앉아서 집중하기 좋은 환경이었다. 그리고 적당한 정도의 소음과 음악이 까페의 분위기를 자아냈고, 무엇보다 커피가 공짜라는 점이 매력적이었다. 구석에는 휴게 공간도 있었는데 밤에 내려다보는 판교의 거리는 여러 감상에 젖어들게 만들었다.) AWS는 그 전 부터 간단하게나마 사용해왔었고, awsome day, summit 등의 행사나 awskrug, meetup 소모임 등의 커뮤니티를 통해 접해왔었다. (내 나름대로는) AWS가..
9 / 17 (일)웹 개발 워크북 8. 스프링 IoC 컨테이너(너무 급하게 읽어나 보다. 머리에 남는게 없다. 다음주에 처음부터 다시 정리하면서 읽어야겠다.)조깅 9 / 16 (토)카카오 코딩 테스트(알고리즘 공부는 언제하나.. 무능함을 느끼는 하루하루..)웹 개발 워크북 7. 퍼시스턴스 프레임워크의 도입웹 개발 워크북 6. 미니 MVC 프레임워크 만들기 9 / 15 (금)웹 개발 워크북 6. 미니 MVC 프레임워크 만들기웹 개발 워크북 5. MVC 아키텍처 9 / 14 (목)Process와 Thread 내용 수정웹 개발 워크북 5. MVC 아키텍처 조깅 9 / 13 (수)구글 클라우드 데이 내용 정리 9 / 12 (화)구글 클라우드 데이 9 / 11 (월)웹 개발 워크북 3. 서블릿 프로그래밍웹 개발 ..
코드스쿼드 웹 백엔드과정 (화이트레벨) 을 시작한지 어느덧 6주가 지났다 (ㄷㄷ;)이 과정을 진행하면서 얻은 것은 무엇이고, 앞으로 해야할 것은 무엇일까 계기 나는 시스템 엔지니어였다. 그런 내가 개발자로 전향하게 된 데에는 많은 이유들이 있겠지만, 결론적으론 코딩하는 시간의 몰입이 좋았기 때문이다.회사에 들어가서 사내 웹 개발을 할 기회가 생겼고, php / mysql 등을 독학하면서 처음에는 무언가를 만들어간다는 것 자체가 너무나 즐거웠다. 하지만 웹의 규모가 점차 커지면서 코드의 복잡도가 커지고, 기능들이 추가될 때마다 능력의 한계가 드러나는 것 같아 괴로웠다. 프로그래밍을 하고싶다. 적당히 하고싶지는 않다. 아니, 잘 하고 싶다. 그 갈망이 커지던 차에 박재성 님을 알게 되었고, 코드스쿼드를 알게..
9 / 10 (일)웹 개발 워크북 1. 웹 어플리케이션의 이해웹 개발 워크북 2. 웹 프로그래밍 기초 다지기 9 / 09 (토)6주간의 회고웹 개발 워크북 부록 1, 부록 4 9 / 08 (금)쉘 스크립트 및 파이썬을 이용한 자동화 수업 후 뒷풀이 9 / 07 (목)aws 개인 계정 신청 및 환경세팅블루 수업 전까지의 공부 계획 9 / 06 (수)마지막 페어프로그래밍 9 / 05 (화)체스 게임 Exception 작성 (Piece 이동 / PAWN 제외), 웹 버그 수정JVM 구동절차 정리해커랭크 3문제 (easy) 9 / 04 (월)체스 게임 웹 구현 (ajax 연습)
Apache Web Server (html, css, js, img 등) 정적인 부분은 웹 서버에서 처리 MPM (Multi-Processing Module) : 여러 개의 프로세싱 모듈 기반의 서비스를 제공 병렬처리를 수행하지 않는 서버는 특정 클라이언트가 접속하여 서버와 입출력을 하고 있는 동안 다른 클라이언트는 서버에 접속할 수가 없기 때문에, 병렬 처리의 구현이 서버의 성능에 미치는 영향이 크다.Process와 Thread 비교 포스팅 바로가기 방식처리주체장점단점대응 예프로세스 기반 방식프로세스구조가 간단하고 구현이 쉬움대량의 메모리가 필요, 느림아파치(prefork)스레드 구동 방식프로세스와 스레드의 하이브리드메모리를 적게 사용, 설정에 따라 약간 빠름이벤트 구동 방식보다 성능 한계가 먼저 옴아..
프로세스는 운영체제로부터 자원을 할당받는 작업 단위를 말하며, 쓰레드는 프로세스가 할당받아온 자원을 이용하는 실행단위이다. 프로세스는 운영체제로부터 프로세스가 운영되기 위해 필요한 주소공간 / 메모리 등의 자원을 할당받고, 쓰레드는 프로세스 내에서 프로세스가 받아온 자원을 공유하며 실행되는 흐름을 말한다. 지금 보면 명료한 정의인데, 처음 접했을 때는 직관적이지 않아 당혹스러웠다. 그래서 프로세스란 무엇인가?(아래의 설명은 리눅스를 기반으로 설명하였습니다.)프로세스는 실행중인 프로그램으로, 1개의 CPU는 1개의 프로세스만을 실행할 수 있다.보통 우리가 HDD에 있는 프로그램을 실행하면, 명령어 등의 데이터가 메모리에 적재되고, 스케줄러에 의해 CPU에서 연산된다. (이는 비용이 연산 및 I/O 속도에 ..
[2017/09/09 추가]포스팅 후에 피드백을 받았습니다. 원래 글은 IBM 및 다른 블로그, 책 등을 참조해서 작성했었는데, 애초에 IBM 블로그가 오류가 있다고 하네요. 인터넷 상에 IBM 블로그를 기초로 작성된 글들이 많은데요, 밑에 원글도 그대로 두니 비교 참조하시길 바랍니다. async : 이벤트 핸들러 (callback)에 의해 처리 (callback 함수가 호출되기까지 다른 작업 가능)sync : 이벤트를 자신이 직접 처리(확인의 주체가 유저 프로세스이며, 다 될때까지 기다리거나 스스로 확인)block : 완료까지 대기(리턴되기 전까지 멈춤)non-block : 미완료라도 즉시 리턴 간단히 까페에서 커피를 주문하는 것을 예로 들어보면,1. 커피를 타달라는 요청이 왔다. 2-1. 이 때 커피..
주변에서 jekyll, hexo 로 블로그를 시작하길래, 오늘 하루종일 블로그 세팅을 해보았다. Ruby보다 JS가 편하기에 hexo로 테스트해보았는데, 장점은 ‘생산성이 좋다는 것’ 필요한 기능들을 세팅하는게 초반에 귀찮을 수 있으나, 그 후로는 typora로 markdown 형식으로 작성하고 deploy만 해주면 git에 push되고 웹에 적용된다. 그리고 템플릿도 좋은 것들이 많다. (나는 icarus, hueman으로 만들어보았다.) 그래도 아직은 티스토리가 나에게 맞는 거 같다. 우선, hexo도 markdown로 작성하고 generate하면 html 형태로 자동으로 변환해준다. 이 후에 html 파일을 github에 deploy하고 웹에 올리는 구조이다. (github도 jekyll을 차용해서..
9 / 1 ~ 3 (금,토,일)Process와 Thread 정리Apache Server MPM 정리 8 / 31 (목)hexo로 블로그 작성 (다시 티스토리로 회귀)blocking vs non-blocking / synchronous vs asynchronous 정리 8 / 30 (수)자바 예외처리 연습자바 성능 튜닝 이야기 (16장. JVM은 어떻게 구동될까?) 8 / 29 (화)체스 게임 코딩 (PAWN 이동 로직 구현, 피/아 식별, main 메소드 구현, 웹 연동 등)git cli 명령어 복습 8 / 28 (월)추상화를 통한 중복 제거 정렬(compareTo) 복습자바 성능 튜닝 이야기 (14장. 서버를 어떻게 세팅해야할까?)체스게임 리팩토링 및 King, Queen, Knight, Rook, B..