또다시 찾아온 시험

 

 

1. 어려웠던 부분 : 오늘은 숙련주차 마무리를 하는 시험이 있는 날. 과제 레벨 1까지만 구현해서 연관관계에 관한 내용은 미처 공부하지 못했는데, 시험으로 출제가 되어서 시험과 동시에 여러 블로그 글들을 보면서 풀어야했다. 이 부분이 이번주에 알았어야할 중요한 부분이라는 것을 미리 알았으면 좋았을 것 같다는 생각을 했다. 공부를 하고 이게 맞는지 계속 확인하면서 답안 코드를 쓰느라 남들보다 훨씬 오래 걸렸던 것 같다.

 

2. 느낀 점 : 갈수록 뒤처지는 것 같다는 생각이 들지만 최대한 스트레스 안받고 천천히 내 속도에 맞춰서 가자는 생각을 했다. 그리고 승호님의 제안으로 채용정보를 같이 살펴보는 스터디에 참여하게 됐는데, 아주 유용한 것 같다. 동기부여도 되고, 내가 지금 필요한 부분이 뭔지 더 잘 챙길 수 있을 것 같다.

 

3. 새로 알게 된 내용 : 연관관계에 대해 알게 되었다. 그리고 그동안 미뤄왔던 기술 매니저님들의 조언도 정리하고, 첫주에 진행했던 미니프로젝트에서 정리하지 못했던 부분도 다시 재정리 하고 글을 찾아봤다. 너무 많아서 글로 정리하진 못하고 일단 찾아서 참고한 블로그 링크들을 걸어놨다. 

 

연관관계 참고 자료 : https://jgrammer.tistory.com/entry/JPA-%EB%8B%A4%EC%96%91%ED%95%9C-%EC%97%B0%EA%B4%80%EA%B4%80%EA%B3%84-%EB%A7%A4%ED%95%91-1-%EB%8B%A4%EB%8C%80%EC%9D%BC-%EC%9D%BC%EB%8C%80%EB%8B%A4-1

지난 미니프로젝트 개념 정리 : [07] 미니프로젝트 사용 함수, 새 개념 정리

 

4. 셀프칭찬 (오늘 잘한 일) : 배우지 않은 부분이 나왔는데도 불구하고 시험을 잘 마무리 했다. 

 

5. 내일 할 일 : chap09-1 공부, 숙련주차 과제2 마무리 해보기, 이전 기수들 실전프로젝트 살펴보기, 새로운 주차 시작


[오늘 공부한 부분]

 

이번주 내로 끝내야할 필수 개념들 ( 정리하고 갈게요 )

 

이번주 내로 끝내야할 필수 개념들 ( 정리하고 갈게요 )

* 일단 그동안 항해를 수료하신 기술 매니저님들의 조언을 정리해 보자. [ 김가은 매니저님 ] - 코딩 테스트는 프로그래머스 Lv1 - Lv2 정도로 준비, 하루에 하나씩 꾸준히 ! - 너무 알고리즘 한 문제

leejincha.tistory.com

[19] 스프링 프레임워크

 

[19] 스프링 프레임워크

스프링 프레임워크 ① 스프링 프레임워크(Spring Framework) 여러 프레임워크들 중 자바(JAVA)를 기반으로 하는 프레임워크 이다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자

leejincha.tistory.com

[20] 의존성 주입 DI(Dependency Injection)

 

[20] 의존성 주입 DI(Dependency Injection)

스프링에서 DI (의존성 주입) 를 사용하는 이유 ① DI(의존성 주입)이란? DI란 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴으로, 인터페이스를 사이에 둬서 클래스 레벨에서는 의존관계

leejincha.tistory.com

[21] ORM, JPA, Spring Data JPA

 

[21] ORM, JPA, Spring Data JPA

ORM, JPA, Spring Data JPA ORM : 객체(Object)와 관계형 데이터(Relational data) 를 매핑하기 위한 기술이다. 객체와 테이블 관계를 바탕으로 SQL문장을 자동으로 생성하여 객체로 DB를 조작하게 하는 기술. JPA :

leejincha.tistory.com

[22] 항해99 주특기 숙련주차 시험 Spring

 

[22] 항해99 주특기 숙련주차 시험 Spring

STEP 1 (다대일 단방향) 책 : 서점 = N : 1 이라고 가정하고 제출한 답안 package com.example.spring_week_2_test.entity; import com.example.spring_week_2_test.dto.BookRequestDto; import jakarta.persistence.*; import lombok.Getter; import lo

leejincha.tistory.com

 

1. 어려웠던 부분 : 과제를 복습하면서 NoArgsConstructor, AllArgsConstructor, RequiredArgsConstructor을 정확히 어떤 상황에  사용해야하는지 궁금해 졌다. 그 외 과제를 하면서 궁금했던 부분을 미경님이랑 혁수님이랑 같이 얘기하면서 정리해서 기술매니저님 순회시간에 여쭤봤다. 위에 언급한 어노테이션 뿐만 아니라, @Builder를 비롯한 코드에 적혀있는 어노테이션의 정확한 역할이 궁금해다. 어제 어노테이션을 정리하긴 했지만, 필드 생성자 메소드 클래스 모든 개념이 자리잡히지 않은 상태에서 생성자 때문이야 !! 라고 설명이 되어있어서 정리를 해도 이해가 되지 않았던 것 같다. 

 

결론은, 자바 기본이 탄탄해야 뭐든 이해를 할 수 있다는 것. 내일은 다시한번 필드와 생성자를 정리해 봐야 겠다.

 

2. 느낀 점 : 스프링 참 어렵다. 어렵다고 들었는데, 정말 어렵다 ^_ㅠ ㅎ 오늘은 입문주차 강의자료를 하나도 빠짐없이 꼼꼼히 다시 읽어봤다. 아무래도 이번주에 과제를 시작하면서 정리를 다 끝내지 못했기 때문에, 일단 과제 레벨2 구현은 미뤄두고 놓쳤던 부분을 더 잡고 가자고 생각했다. 일단 입문주차는 80% 정도는 이해가 된 것 같다. 그리고 이어서 매운 맛인 JPA부분을 공부했다. 정말 어렵다. 어려워도 해야지 뭐 어쩌겠어. 

 

3. 새로 알게 된 내용 

  • 인텔리제이 단축키 정리
  • JPA 너란 녀석 쉽지 않다.
  • HTTP request 날려요 ~ response 날려요 ~ 무슨 의미인지 다시 짚고 가기
  • 정규식표현
  • 과제로 구현한 코드 리팩토링 + 어노테이션 살펴보기

4. 셀프칭찬 (오늘 잘한 일) : 과제를 통해 얻는 부분도 많지만, 이해하지 못한 개념, 놓쳤던 개념을 다시 꼼꼼히 짚어보고 흡수하려고 한 오늘. 남들 보다 한발자국 느리긴 하지만, 그럴수록 탄탄하게 다지고 가자는 나의 마음을 칭찬해 주자. 조급해 하지 말자!

 

5. 이번주 할 일 : Auth, JWT,  Java chap09-1 공부, 이전 기수들 실전프로젝트 살펴보기/ 의존성 주입


[오늘 공부한 부분]

 

[12] 정규식(regex, rational expression)

 

[12] 정규식(regex, rational expression)

로그인 회원가입에 여러가지 조건을 넣으면서 정규식 표현을 사용하게 되었다. 여러 블로그 자료는 많은데, 다들 사용법이 다 달라서 한번 정리해보려 작성하는 글 : ) 정규식이란? 정규식(正規

leejincha.tistory.com

[13] @Valid, @Validated (작성중. 수정필요)

 

[13] @Valid, @Validated (작성중. 수정필요)

Spring으로 개발을 하다 보면 DTO 또는 객체를 검증해야 하는 경우가 있다. 객체의 검증을 손쉽게 하는 방법 @Valid, @Vaildated 에 대해 알아보자! 1. @Valid를 이용한 유효성 검증 ① @Valid의 개념 및 사용

leejincha.tistory.com

[14] JPA (1)

 

[14] JPA (1)

1. JPA 사용하기 전 문제 어플리케이션이 데이터베이스를 직접 다룰 때 다음과 같은 문제점이 있었다. 훨씬 더 번거롭다. SQL 의존적이라 변경에 취약하다. - ORM 이 없는 환경에서는 백엔드 개발자

leejincha.tistory.com

[15] JPA (2) 심화

 

[15] JPA (2) 심화

영속성 컨텍스트 ※ 영속성이라는게 뭘까? 오래도록 계속 유지되는 성질. 트랜잭션의 지속성(durability)은 영속성이라고도 하는데 트랜잭션이 성공적으로 완료된 후 데이터베이스에 반영한 수행

leejincha.tistory.com

HTTP 이해

 

HTTP 이해

HTTP(HyperText Transfer Protocol)란? 데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나가 HTTP 매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약이다. 여기서 말하는 통신

leejincha.tistory.com

 

 

 

1. 어려웠던 부분 : 과제를 구현하는 것 자체가 너무 어렵다 ! 에러를 하나 해결하면 또 다른 에러가 자꾸자꾸 나오는 코딩의 세계^__^  그래도 같이 공부하시는 분들이 화면공유도 봐주시면서 계속 알려주시고 지식 나눔을 해주셔서 그나마 헤쳐나가는 것 같다. 오늘은 인광님한테 거의 개인과외 받다시피 배웠는데, 포스트맨에서 토큰을 사용해서 조회하는 방법과 ResponseEntity 사용 법을 알려주셨다. 진짜 인광님 강의 없었으면 자료 보고도 구현하지 못했을 것 같다. 감사합니다 : ) 

그리고 정규식 표현과 관련해서 은솔님이랑 윤재님이랑 이것 저것 실험을 해보면서 코드를 구현했다. 일단 엔티티에는 정규식 표현을 쓰지 않느다는것, 컨트롤러 단에서 해결을 해야하기 때문에 디티오에서 정규식 처리를 해줬다. 그리고 ^는 시작 $는 끝을 의미한다는 것. 정규식은 자료가 너무 많아서 제대로된 자료를 찾아서 공부하려면 공식 사이트를 찾아봐야 할 것 같다.

 

2. 느낀 점 : 오늘 조원 한 분이 개인적인 이유로 항해를 나가셨다. 시작은 분명 41명 정도 되었던 것 같은데, 5주차에 접어든 지금 34명으로 인원이 줄어들었다. 항해가 힘들어서 나간 사람도 있을 거고, 더 나은 기회가 생겨 나가신 분도 있을 텐데 한분 한분 나가실 때마다 아쉬운 마음이 드는 건 어쩔 수 없는 것 같다. 두바이에 있으면서 항상 느꼈던 거지만, 떠나는 사람보다 남겨진 사람들의 마음이 괜히 싱숭생숭하고 힘들고 그렇다. 원래 그렇다. 오늘 기술 매니저님 말씀 듣고 좀 흔들리긴 했지만, 일단 시작했으니 끝까지 최선을 다하기로 마음을 다잡았다 !

 

3. 새로 알게 된 내용 

  • @Valid를 이용한 유효성 검사 + 정규식 표현
  • ResponseEntity 사용법
  • 회원가입 정규식 표현은 Entity가 아니라 Dto에서 처리하기 
  • 스프링 데이터베이스 초기화 - spring boot ddl auto
  • Entity에서 필요한 값만 Dto에 담아서 Service 단에서 처리하기 ( 이번 과제에서 POST/UPDATE 부분에 content, title만 입력 할 수 있었던 방법은 Dto 부분 설정이었다는 것!) - 내일 정리

 

4. 셀프칭찬 (오늘 잘한 일) : 오늘도 최선을 다했다 ! ^___^ 염치 불구하고 또 여기 저기 다니면서 물어보고 오늘 목표했던 과제 레벨 1을 일단은 마무리했다. 오늘 목표는 끝 ! 내일 일은 내일의 내가 또 하겠지 ! ㅎㅎ 내일은 코드 한줄씩 주석 달면서 이해부터 하는 걸로! 

 

5. 이번주 할 일 : JPA, JWT, SQL 개념 잡기(이건 수요일)/ Java chap09-1 공부 / 과제2 시작/ 코드 주석달면서 이해하기

 


[오늘 공부한 부분]

  • Java chap 08 - 2 (인터페이스 공부)
  • 스프링 과제 레벨 1 구현
  • 과제하면서 사용했던 어노테이션 정리

[10] Spring Boot 어노테이션 정리

 

[10] Spring Boot 어노테이션 정리

Annotation이란? 사전적 의미로는 주석이라는 뜻이다. 자바에서 Annotation은 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술이다. 프로그램에게 추가적인 정보를 제공해주

leejincha.tistory.com

[24] JAVA 타입 변환과 다형성

 

[24] JAVA 타입 변환과 다형성

인터페이스의 다형성 : 프로그램 소스 코드는 변함이 없는데, 구현 객체를 교환함으로써 프로그램의 실행결과가 다양해 지는 것 상속은 같은 종류의 하위 클래스를 만드는 기술이고 인터페이스

leejincha.tistory.com

[11] Database 와 SQL

 

[11] Database 와 SQL

Database Database를 한 마디로 정의하면 ‘데이터의 집합’ 이라고 할 수 있습니다. DB는 우리가 매일 사용하는 카톡 메시지, 인스타그램의 사진등의 정보를 저장하고 관리해 줍니다. ① DBMS DBMS 는

leejincha.tistory.com

 

 

 

크리스마스가 찾아온 항해99 b반 젭

 

 

1. 어려웠던 부분  : 처음으로 스프링이란 녀석을 접하게 되었다. 사실 완전 처음은 아니고, 한달 전에 유튜버 홍팍 선생님의 스프링 입분강의를 12회 까지 들은 적은 있는데, 개념이 없는 상태로 흘려 들었던 터라 이번이 처음이나 다름 없었다. 아직 자바 클래스도 공부하지 않앗는데, 첫 발제된 날 부터 과제로 클래스 설계가 나와서 시작부터 당황스럽고 아무 개념없이 스프링 강의를 듣고 과제를 하려니 너무 막막했다. 인프런 김영한 선생님 강의도 들어보고 항해에서 제공해준 강의도 들어봤는데, 기본기가 없다보니 뭔가 제자리 걸음만 하는 기분이었다. 그래도 기술매니저님이 일단 과제를 빨리 시작해보라고 하셔서 죽이되든 밥이되든 해보자는 마음으로 시작했는데, 과제를 하고나서 코드에 주석을 달아보면서 그제서야 흐름을 조금 파악할 수 있었다.

 

2. 느낀 점 : 막막한 나의 과제에 또 한줄기 빛처럼 도움을 준 은솔님. 처음에 엔티티를 디티오로 반환하라는게 무슨말인지 와닿지 않기도 하고 어떻게 하는지 몰랐는데, 은솔님이 차근차근 따로 설명해주셔서 그제서야 이해할  수 있었다. 그리고 이번엔 조원들 중에 실력자분들이 많아서 코드 리뷰도 하면서 다른 사람의 코드를 통해 또 더 많은 걸 배울 수 있었다. 그래서 느낀 점은, 배움에 주변인이 참 중요하다는 것.

 

3. 새로 알게 된 내용 : 스프링의 기본 개념을 파악할 수 있었다. 아직 배워야 할 개념, 정리해야할 개념은 많지만 그래도 전반적인 틀인 컨트롤러, 서비스, 레포지토리 그리고 이들을 연결하는 디티오, 엔티티의 개념을 좀 알 것 같다. 아직 100%이해했다고 할 수 없지만, 일주일 동안 과제도 수행하고 대략적인 흐름을 파악한 것에 의의를 두기로 했다.

 

4. 셀프칭찬 (오늘 잘한 일) : 매주가 새롭고 힘든 항해99. 진짜 하루에 몇번이고 그만하고 싶다는 생각이 들었지만 그때마다 스스로 잘 하고 있다고 버티는게 승자라는 생각을 하며 멘탈을 잘 부여잡았다. 이제 정규 과정이 시작한지 3주차니까, 힘든 건 당연한거라 생각한다. 항해의 과정이 생각했던 것 보다 훨씬 어렵고 힘들지만, 그래도 어찌 저찌 헤쳐나가고 있는 나를 칭찬해주자. 시작했으니 끝은 봐야하니까 다음주의 나도 힘내길.

 

5. 이번주 할 일 : JPA, JWT, SQL 개념을 이번주에 확실히 잡자 ! + 입문주차에 정리 못했던 개념들 정리하기 + 어노테이션 정리 

 


[이번주 공부한 부분 링크 정리]

 

[19] JAVA 패키지와 접근 제한자

[20] JAVA 상속

[21] JAVA 타입변환과 다형성

[22] JAVA 추상클래스

[23] JAVA 인터페이스

[01] Spring Boot 기본 개념 알고 시작하자 !

[02] 항해99 주특기 입문 1주차 (1-1) - Use Case, API 명세서

[03] 항해99 주특기 입문 1주차 (1-2) - PostMan/h2-console

[04] 항해99 주특기 입문 1주차 (1-3) - 코드 흐름 읽어보기

[05] 항해99 주특기 입문 1주차 (1-4) - Delete 수정하기

[06] 항해99 주특기 입문 1주차 (1-5) - 팀과제 (키워드 정리)

[07] 항해99 주특기 입문 1주차 - 주특기 시험 (API 구현)

[08] 웹 동작방식

RESTful API 설계 가이드

 

 

크리스마스가 20일 남은 것 실화소니 ...?

 

 


1. 어려웠던 부분
  : 오늘 어제 끝내지 못한 스프링 숙련주차 강의 후반부를 들었다. 인증 인가에 대한 내용과 페이징에 관한 내용이었다. JWT토큰은 토이프로젝트부터 계속 나오던 개념인데, 항상 내가 맡았던 파트가 아니라 해보기 전엔 이해가 어려운 것 같다. 쿠키와 세션 그리고 JWT 토큰의 차이점을 다시 정확히 이해할 필요가 있는 것 같고, 과제를 하면서 어떻게 코드에 사용해야하는지 파악해봐야 겠다.

 

2. 느낀 점 : 같이 공부하는 반 사람들은 물론이고, 기술매니저님 그리고 심지어 운영매니저님들 마저 모두가 열심히 새벽까지 공부하는 항해99. 인생에서 이렇게 늦게까지 열심히 했던 적은 수능 이후 처음인 것 같다. 그치만 진짜 페이스 조절이 필요한 시점이 아닌가 싶기도 하다. 내 속도를 지키고 무리하지 말자는 다짐을 하게된 하루.

 

3. 새로 알게 된 내용 : 인증(Authentication) - 해당 유저가 실제 유저인지 인증하는 개념, 인가(Authorization) - 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념. 인증과 인가에 대한 내용을 배우고, JWT토큰의 장점, 그리고 사용하는 법을 강의를 통해 배웠다. 과제를 수행하면서 다시 한번 익숙해 져야겠다.

 

4. 셀프칭찬 (오늘 잘한 일) : 목표했던 스프링 숙련주차 강의를 끝냈다! 예 ! 

 

 

5. 내일 할 일 : 시간이 된다면 과제 시작하기. WIL 작성하기.

 


[오늘 공부한 부분]

  • 지난주차 스프링 입문 강의 복습
  • 스프링 숙련주차 강의 끝까지 마무리
  • 자바 언어스터디 ( 추상클래스)
  • 김준규 기술매니저님 Controller 세션 
  • 혼자 공부하는 자바 - 8강 인터페이스

[08] 웹 동작방식

 

[08] 웹 동작방식

웹의 동작방식 IP 주소란? 거대한 네트워크망에서 컴퓨터를 식별하기 위한 위치 주소 네트워크상에서의 데이터 송/수신은 이 주소를 기준으로 이루어지고 있다. 브라우저란? 크롬, 사파리, 엣지

leejincha.tistory.com

[22] JAVA 추상클래스

 

[22] JAVA 추상클래스

추상 클래스 추상(abstract) : 실체 간에 공통되는 특성을 추출한 것 추상 클래스 : 실체 클래스들의 공통적인 특성(필드와 메소드)을 추출해서 선언한 클래스. 실체 클래스 : 객체를 직접 생성할 수

leejincha.tistory.com

[23] JAVA 인터페이스

 

[23] JAVA 인터페이스

인터페이스 인터페이스 : 개발 코드와 객체가 서로 통신하는 접점 역할 개발 코드가 인터페이스의 메소드를 호출 → 인터페이스는 객체의 메소드를 호출 인터페이스를 통해 개발 코드를 수정하

leejincha.tistory.com

 

+ Recent posts