목록일상/우아한테크캠프 (14)
설모의 기록
우아한형제들 김민태님 & 우아한형제들 이동욱님 오늘은 현업의 두 개발자 분들이 오셔서 강연을 해주셨습니다. 그 내용을 간략하게 정리해보려고 합니다. 김민태님 먼저 강연해주신 분은 김민태 님이었습니다. 입사 전 우아한형제들에서는 직접 woowahanJS 를 개발해 사용하고 있다는 것을 알게 되었고, 이렇게 필요한 것을 직접 개발해서 사용하는 회사라는 것에 멋있다는 생각을 하며 지원했었는데.. 이것을 개발한 분이 김민태 님이었다는 것을 다시 검색해보며 알게 되었습니다. 관련 링크는 아래와 같습니다.MASCON 2017우아한형제들 기술블로그오늘 강연에서 3가지 주제 중 한가지를 선택할 기회를 주셨는데, 나머지 2개도 들어보고 싶은데 아쉬웠습니다ㅠㅠ그래도 오늘 주제를 들은 것에 너무 감사했습니다. 김민태님께서 ..
JavaScript 의 기초 오늘 배운 var, let, const 키워드와 함수에 대해 정리한 글입니다. var, let, const 를 이용한 변수 선언JavaScript 에서의 함수오늘은 CHROME 의 개발자도구 사용법과 JavaScript 의 기초 문법을 공부했습니다. JavaScript 는 매우 유연한 언어이며 컴파일러 언어가 아닌 한줄 한줄 읽어가며 실행하는 인터프리터 언어입니다. 또한 함수 단위로 Context 를 가지는 특징을 가지고 있습니다. 이 때문에 ES6 부터 let, const 키워드가 등장하기도 했습니다. 오늘 Crong 의 강의에서 배운 내용 중 Ojbect 와 Array 에 대해 정리해보겠습니다. Object클래스라는 틀을 이용해서 인스턴스를 생성하는 Java와는 달리 Ja..
AWS EC2 와 IAM & Database 오늘은 AWS 가 제공하는 서버인 EC2를 생성하는 방법과 mySQL 를 사용해 Database 쿼리를 연습하는 과정을 공부했습니다. 그 중 가장 어려웠던 개념인 데이터베이스의 인덱스에 대해 정리하겠습니다. Index?'기본키로 unique 한 숫자를 설정하면 검색할 때 빠르대~' 라는 말을 얼핏 들었었는데요. 그냥 기본키를 숫자로 설정하면 검색에 도움되는 줄 알았는데 오늘에서야 잘못된 지식이였다는 걸 알게 되었습니다 T^T😭😰 우선 인덱스는 레코드를 검색할 때 좀 더 빠르게 검색하기 위해 사용하는 것은 맞습니다. 만약 [ '스프링부트 코딩공작소' 책에서 MVC 에 대한 내용을 찾아보시오 ] 했을 때 앞에서부터 쭉 읽어보면서 찾는다면 시간이 많이 걸리겠죠? 그..
브라우저 동작 방식 오늘은 프론트엔드의 HTML 문서에 CSS 를 입히는 연습을 했습니다. 그 전에, 브라우저에 대한 기본적인 브라우저에 대한 크롱의 온라인 강의를 보는 시간을 가졌는데요. 그 동안 '브라우저' 라고 쉽게 부르던 것이 대체 무엇을 하는 건지 궁금해하다 네이버D2 블로그에서 잘 정리된 글을 읽게 되어 공유합니다.일반적으로 제 블로그인 http://hyeooona825.tistory.com/ 를 화면에 렌더링 하는 과정에서도 많은 일이 일어납니다. 먼저 HTML 을 파싱해 브라우저가 이해할 수 있는 구조로 변환하는 과정이 일어납니다. HTML 문서를 읽어가며 CSS 와 같은 자원들을 해당 서버에 요청해 얻어와 CSS 또한 파싱합니다. 파싱된 HTML 문서에 CSS 를 입혀 렌더링 엔진을 통해..
HandlerMethodArgumentResolver 인터페이스 적용 Spring 프레임워크를 이용해 API 를 관리할 때 컨트롤러에 들어오는 파라미터를 공통적으로 추가해야 하는 경우가 있습니다. 예를 들어, 로그인한 유저만 할 수 있는 기능이 많다고 생각해보자. 그러면 보통은 매번 HttpSession 에서 유저를 꺼내 체크해주는 로직이 반복될 것입니다.이럴 때 사용하는 것이 HandlerMethodArgumentResolver 인터페이스입니다. HandlerMethodArgumentResolver 는 컨트롤러에 사용자의 요청이 도달하기 전에 요청에 대한 파라미터를 수정해 넘길 수 있습니다. 아래의 예제로 살펴보겠습니다. 우선 @LoginUser 라는 인터페이스를 구현하겠습니다.import java.l..
한명수 이사님, 김영한 팀장님의 강의,그리고 회고 오늘 오전에는 캠프에 참여하기 이전부터 정말 뵙고 싶었던 한명수 이사님과 김영한 팀장님의 강의를 들을 수 있었습니다. 아쉽게도 김영한 팀장님의 강의 모습은 찍지 못했습니다ㅠㅠ😰 한명수 이사님의 강의에서 가장 인상 깊었던 말은내가 하는 것들에 대해 나만의 정의를 할 줄 알아야 한다.입니다. 면접에서 받았던 "어떤 개발자가 되고 싶으세요?" 라는 질문이 떠오르던 순간이었습니다. 앞으로도 그냥 돈을 벌기 위해 회사를 다니며 일을 하는게 아니라 내가 발전하고, 레벨업하고 싶어서 공부하고 실무를 한다는 것을 잊지 말아야겠다는 생각이 들었습니다. 또한 이사님께서는 그냥 새로운 것을 하고 안했던 것을 하는게 창의적인 것이 아니라, 우리가 왜 이것을 해야 하고, 하고 ..
Git : Version Control System 동료와 협업을 하다보면 동료의 코드와 제 코드를 합쳐야 할 경우가 생깁니다. VCS 가 없었을 때는 파일이나 프로젝트를 압축해 동료와 코드를 직접 비교해가며 합쳤습니다. 이것은 굉장히 비효율적인 일이었고, 실수로 오타를 내거나 코드를 합치지 못할 경우가 생길 수도 있습니다. 그래서 나타난 것이 VCS인데요. Git 이전에는 SVN 이라는 버전 관리 시스템이 있었습니다. SVN은 현재에도 많이 쓰이는 버전 관리 시스템으로 장단점이 있습니다.Git - Git 은 DVCS (Distributed Version Control System: 분산 버전 관리 시스템) 입니다. 서버의 원격 저장소를 내 컴퓨터의 로컬 저장소로 복제해와서 나만의 commit histo..
Spring @Entity 간의 관계 + 프론트엔드 코드 구성 오늘은 어제 구현했던 게시판을 좀 더 리팩토링하는 시간을 가졌습니다. 친구들과 프로젝트를 하다보면 데이터베이스 테이블끼리 서로 Join 해야 하는 것에 항상 고민을 많이 했었는데요. ORM 표준인 JPA 를 사용하다보니 이런 고민을 많이 안할 수 있다는 것에 놀라웠습니다. 이번 글에서는 캠프 동기와 함께 예외 처리에 대해 고민한 부분과 ManyToOne 관계인 테이블 처리에 대해 말씀드리겠습니다. 그리고 서버에게 비동기적으로 요청하거나 서버가 보내는 데이터를 받아 비동기적으로 처리하는 클라이언트 코드에 대해 알아보겠습니다. 예외처리우아한테크캠프에 참여하지 못했다면 깨닫지 못했을 예외처리에 대해 말씀드리겠습니다. 이전에는 예외처리를 try-ca..
HTTP 통신과 Spring 에서의 Bean 객체 오늘은 HTTP 통신에서의 쿠키와 세션에 대한 개념과 Spring 에서의 Bean 객체에 대해 공부했습니다. 학교 강의를 통해 배운 내용이라고 생각했었는데 포비의 강의를 들으며 다시 한 번 기억할 수 있었던 하루가 됐습니다. (포비는 항상 절 반성하게 만드는..) 쿠키와 세션(이미지는 포비의 강의 자료에서 가져왔습니다.) 위의 이미지에서 보면 Client 가 Server 에게 요청을 보내고, Server 가 응답을 보낸 후 Client 가 다시 요청을 보내는 과정을 나타낸 그림입니다.첫번째 HTTP 통신 과정을 보면, Client 가 Server 에게 GET 요청을 보냈고 Server는 그에 대한 응답으로 200 응답코드와 session-id 라는 쿠키에..
HTTP통신과 Spring을 이용한 데이터 저장 오늘은 기본적인 HTTP통신이 이루어지는 간략한 과정과 h2database 를 이용해 Spring에서 데이터를 관리하는 방법에 대해 학습했습니다. HTTP통신 브라우저에서 http://hyeooona825.tistory.com/ 를 검색하면 그냥 해당 페이지 하나가 로드되는 것과 같아 보이지만, 실제로는 많은 일이 일어납니다. 위의 그림이 간략하게 나타낸 모습입니다. 1. http://hyeooona825.tistory.com/ 를 입력하면 해당 도메인에 대한 IP주소를 알기 위해 DNS 서버에게 요청합니다. 그림에는 DNS 서버가 한 대이지만, 실제로는 여러 상위 DNS 서버가 있을 수 있습니다. 2. DNS 서버는 요청받은 도메인에 해당하는 IP주소를 ..