전체 글

전체 글

    2021.06 <CodeStates에서의 학습을 시작하다>

    1. 프로젝트 경험 - 구글링을 할거면 좀 꼼꼼히 읽어라 (코드스테이츠에서의 학습을 시작하기 전의 일입니다.) 이번에 Spring Security를 처음으로 알아가면서 내 프로젝트에 도입해 보았다. 처음이다보니 회원가입과 로그인, 두 기능을 구현하는 데에 상당한 시간을 소모하게 되었다. 두 기능 다 한 가지 씩의 에러가 발생했는데, 한참동안을 그 똑같은 에러들에서 벗어날 수가 없었다. 하지만 알고보니 해답들은 무척 간단했다. 일단 회원가입 쪽은 기존의 Entity와 Dto가 제대로 연결이 안되어 있었다. 생성자를 만들 때, Dto의 값들을 통해 바로 Entity의 생성자를 만드는 작업을 안해봤다 보니 발생한 문제였다. 그리고 로그인 쪽은 Sprint Security의 기본적인 사용법을 익히기 위해 봤던 ..

    리처드 탈러 · 캐스 선스타인 - 『Nudge』

    ◈ 서론 또다시 개발 관련 서적이 아닌 다른 책을 들고 오게 되었다. 이 책을 읽게 된 이유는 사실 『객체지향의 사실과 오해』를 읽으면서, 그 책의 내용이 쉽게 이해되지 않았기 때문이다. 『객체지향의 사실과 오해』에 대해서 비판을 하고자 하는 것은 아니지만 내 개발 지식 수준에서는 꽤나 이해하기 힘든 책이었고, 이는 '내가 책을 그렇게 못 읽나?' 하는 생각으로 이어졌다. 나는 소설책을 좋아하긴 하지만 에세이나 비문학들도 꽤나 즐겨 읽는다고 생각했는데, 『객체지향의 사실과 오해』는 읽기가 좀 힘들었다. 그런 의미에서 다른 비문학 책을 다시금 재미있게 읽어보고 싶다는 단순한 생각으로 책장에 꽂혀 있던 이 책을 다시 꺼내보게 되었다. 읽은 기간 : 2021.05.04 ~ 2021.05.27 ◈ 소감 이 책은..

    2021.05 <개발자라는 길에 대하여>

    0. markdown의 첫 사용 오랜만에 다시 찾아온 블로그 포스팅이다. 기존에는 블로그에 글을 정리하기 위해서 markdown을 배우기보다는 개발 실력을 늘리는 데에 초점을 두기로 했지만 이는 오산이었다. markdown 기법은 내 생각보다도 훨씬 간단하게 사용할 수 있는 문법임을 알 수 있었고, 이후의 포스팅들은 다 markdown 기법을 적용해 나갈 예정이다. /* 다만 기존의 포스팅들은 프로젝트도 만들고 개발 공부를 하고 나서도 시간 여건이 될 때 수정할 생각이다. */ 1. 개발자가 되고 싶었던 이유 인프런에서 김영한 선생님의 (현재까지 있는) 모든 강의를 다 듣고나서 나만의 프로젝트 만들기에 돌입하고자 했지만, 인프런의 강의 하나가 눈에 띄어서 이것까지만 듣고 프로젝트를 만들기로 했다. 바로 ..

    베르나르 베르베르 - 『죽음』

    ◈ 서론 『객체지향의 사실과 오해』에 대한 글을 포스팅한지 얼마 지나지 않아서 다시 한번 책 이야기를 꺼내보게 되었다. 그만큼 짧은 기간 내에 책 한 권(정확히는 두 권 시리즈)을 다 읽었다는 것이 아니라 원래 이 책을 먼저 읽고 있었는데 개발 공부에 대한 강박 때문에 『객체지향의 사실과 오해』를 중간에 읽게 된 것이다. 어쨌든 중요한 내용이 아니니 각설하고, 이 책을 읽게 된 이유는 크게 두 가지가 있다. 하나는 내가 베르나르 베르베르 작가님의 완전 팬이라는 사실이고, 다른 하나는 이 책의 첫 문장 에 매료되었기 때문이다. 군 생활을 베르나르 베르베르 작가님과 더글라스 케네디 작가님, 이 두 분의 작품들과 함께 보냈다고 해도 과언이 아닐 정도로 두 작가님의 작품들을 좋아하던 나로써는 위의 두 가지 이유..

    Querydsl

    ※ 본문은 김영한 선생님의 인프런 '실전! Querydsl' 강의를 듣고 정리한 내용임을 알립니다. ★ Querydsl 설정 관련 - Querydsl 관련 Q파일들은 깃허브에 올리지 않도록 하자. - build.gradle의 Querydsl 설정은 협업이나 여러가지 변동사항이 있을 때 설정이 꼬일 수 있으니 주의하자. ▶ 기본 문법 1. 기본 Q-Type 활용 - Q 클래스 인스턴스를 사용하는 2가지 방법 → 별칭 직접 지정 : QMember qMember = new QMember("m"); → 기본 인스턴스 사용 : QMember qMember = QMember.member; => 같은 테이블을 join하는 경우가 아니라면 기본 인스턴스를 활용하자. 2. 검색 조건 쿼리 where 검색 조건은 .and..

    2021.04

    국비지원 학원 앱/웹 과정을 2월 5일에 수료하고 시간이 꽤나 빠르게 흘러갔다. 학원을 수료한 직후부터 바로 포트폴리오를 제작하기에는 아직도 웹 개발 부문에 있어서 모르는 부분이 너무나도 많았기 때문에 공부를 좀 더 하기로 결심했고, 지금, 4월 말까지 웹 개발 공부를 지속해오고 있었다. 학원 수료 직후에는 이동욱 님의 『스프링 부트와 AWS로 혼자 구현하는 웹 서비스』라는 책과 함께 최신 웹 개발 트렌드로 배포까지 이어지는 프로젝트를 따라 해보려고 했으나 안타깝게도 AWS 배포하는 과정에서 에러가 터지고 막혀서 끝까지 진행하지는 못했다. 게다가 버전 이슈가 있어서 꼬이고 꼬여서 아직은 다시 손대지 못하고 있는 실정이다. 그러다 3월 초 쯤에 '이 놈의 Spring이 뭔지 제대로 파봐야겠다'는 생각이 들..

    스프링 데이터 JPA

    ※ 본문은 김영한 선생님의 인프런 '실전! 스프링 데이터 JPA' 강의를 듣고 정리한 내용임을 알립니다. ▶ 스프링 데이터 JPA 공통 인터페이스 JpaRepository 인터페이스 공통 CRUD 제공 제너릭 설정 - 제너릭 타입 T : Entity ID : Entity의 식별자 타입 S : Entity와 그 자식 타입 - 주요 메소드 save(S) : 새로운 Entity는 persist / 이미 있는 Entity는 merge delete(T) : Entity를 하나 삭제함 / 내부에서 em.remove() 호출 findById(ID) : Entity 하나를 조회 / 내부에서 em.find() 호출 getOne(ID) : Entity를 Proxy로 조회 / 내부에서 em.getReference() 호출 ..

    조영호 - 『객체지향의 사실과 오해』

    ◈ 서론 김영한 선생님의 인프런 강의를 열심히 듣던 중, 객체지향 설계를 이해하는 데에 있어서 이 책이 큰 도움을 줄 수 있다는 말에 망설임 없이 이 책을 구매했다. 스스로 코딩을 할 때 이미 잘 설계되어 있는 구조를 가져와서 내 입맛대로 고치는 과정은 잘 해냈지만, 그런 구조를 직접 설계하게 되면 상당히 난감했기에 객체지향 설계에 대해 이론적으로 더 깊이 이해하고 싶었고, 그런 마음이 나를 이 책으로 이끌었다. ◈ 소감 이 책은 객체지향을 여러가지 이야깃거리와 함께 설명해준다는 목적을 가진 매력적인 책이다. 특히, 커피전문점과 이상한 나라의 앨리스, 지하철 노선도, 지도 안에 숨겨져 있는 객체지향 요소를 파헤쳐보는 과정이 흥미롭지 않을 수가 없었다. 그동안 이해가 되건 안되건 주먹구구식으로 코드들이 작..

    객체지향 쿼리 언어 (JPQL)

    ※ 본문은 김영한 선생님의 인프런 '자바 ORM 표준 JPA 프로그래밍 - 기본편' 강의를 듣고 정리한 내용임을 알립니다. ※ JPA가 지원하는 다양한 쿼리 방법들 JPQL JPA Criteria QueryDSL 네이티브 SQL JDBC API 직접 사용 (myBatis, SpringJdbcTemplate) ▶ JPQL (Java Persistence Query Language) : 가장 단순한 조회 방법 1. JPQL이 생긴 이유 JPA를 사용하면 Entity 객체를 중심으로 개발 검색을 할 때도 테이블이 아닌 Entity 객체를 대상으로 검색해야 함 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능 애플리케이션이 필요한 데이터만 불러오기 위해서는 결국 검색 조건이 포함된 SQL 필요 2. SQ..