TIL(Today I Learned) 45

Day.38 Stream 그리고 for

서비스를 만들다보면 데이터를 불러오거나, 핸들링하거나 등 여러 행위를 해본 경험이 누구나 있을 것이다. 이 속에서 배우길 데이터를 탐색하려고 하면 For 문이라는 반복문을 이용한 경험이 있을 것인데, 만약 이 loop가 길어지고, 주어진 조건이 많아진다면 어떻게 해야할까?에 대한 고민을 한번쯤을 해볼법도한데... 당연히 반복문 속 내용이 많아진다면 코드의 가독성도 떨어지고, 재사용도 힘들 것이며, 아무쪼록 그냥 그닥 좋은 코드가 못될수도있다. 자바에서는 이러한 문제점을 해결하기 위해서 버전 8부터 Stream이라는 개념을 지원해준다. 평소에 나는 스트림에 대해 익숙치 못해서 For문을 이용해 루프를 탐색하곤 했는데, 당연히 코드의 가독성도 떨어지고 그냥 마음에 들지않았다.. 항상 어떻게하면 이 loop를..

Day.3N 밀린 TIL

공부한 내용을 꾸준히 기록으로 남기기 너무 어렵다. 해당 내용을 정리해야지 해놓고 까먹기 일수다... 요 근래간 코드에 관해 많은 고민을 했었고, 많은 인사이트를 넓힐 수 있던 기간이었다. 오늘 개인 프로젝트 제출이였는데, 요 근래 발생한 문제를 해결하느라 프로젝트에 집중 못했고, 그 결과 완성을 하지 못했다. (사실 완성할 수 있었는데, 그 방법으로 하기 싫었고, 새로운 방법으로 하고 싶었다.) 요즘엔 [10분 테코톡]을 시청하고 정리하며 친구들과 스터디를 진행하고 있다. 각자 시청하고 싶은 토픽을 정해서 시청하고, 내용을 정리하며 서로 공유하는데, 뭔가 스터디 느낌이면서도 아닌듯한 그냥 그렇다.. 약간의 동기부여? (하지만 재밌다) 이러한 내용들을 보면서 모르는 내용을 그냥 넘어가지말고 이해할 때까지..

Day.34 + 35 고민, 그리고 의미 있는 데이터란?

프로젝트를 진행하면서 과연 의미있는 데이터란? 에 관한 물음을 수없이 던진 이틀이었다. 해당 미니 프로젝트에서 요구하는 바가 있었지만, 왜 ? 라는 질문을 많이 해보았다. 물론 나름의 뜻있는 이유가 있었겠지만, 백엔드 입장에서는 과연 그 데이터들이 의미가 있는 데이터일까? 에 깊은 사색에 잠겼다. 그래서 나름 혜안을 얻고자 튜터님들과 주변 사람들에게 물어봤고 한 의견으로 귀결할 수 있었다. 자세히 내가 고민하고, 내 생각들을 적은 글은 아래있다. 2022.12.16 - [기술면접 관련 및 참고하기] - 나의 고찰 1 - 백엔드 입장에서 보는 유의미한 데이터란?? (봉투패턴) 나의 고찰 1 - 백엔드 입장에서 보는 유의미한 데이터란?? (봉투패턴) 웹에선 HTTP 통신 프로토콜을 이용해 서버와 클라이언트 ..

Day.33 어노테이션

@ 어노테이션 공부를 하다 어노테이션에 관한 이해도를 높이고자 내가 찾고자 하는 어노테이션에 대해 공부를 하고, 더 나아가 어노테이션이 무엇인지, 어떤 종류들이 있는지 등을 직접 찾아보고 정리하며 어노테이션 기반을 이해하는 하루를 보냈다. 2022.12.14 - [스프링] - Spring- Lombok의 이해와 @Annotation (계속 추가합니다.) 특히 생성자 관련해서 조금 이해가 안되는 부분들을 직접 공식 문서를 참고하며 이해하도록 노력했으며, 무분별하게 어노테이션을 사용하는 것이 아니라 적재적소에 맞는 어노테이션을 사용하도록 노력해야겠다. https://projectlombok.org/features/constructor @NoArgsConstructor..

Day.32 JDBC -> JPA까지 확장 -> 그 속에서 DI, IoC

제공받은 강의에서 JDBC를 시작으로 JPA까지 연결하는 부분을 직접 따라하며 만약 JPA가 없었더라면? 이라는 환경을 직접 느끼게 되었다. 이러한 과정 속에서 의존성 주입 (DI)를 학습하게 되었다. DI (Dependency Injection) 의존성 주입 혹은 의존관계 주입이라고 불리는 DI는 Dependency Injection의 약어로, Spring이 다른 프레임워크와 차별화 된 의존 관계의 주입 기능으로, 객체를 직접 생성하는 것이 아니라 외부에서 생성한 후 주입시키는 방식을 말한다. (의존 관계를 Bean 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것) Q. 그럼 Spring DI 컨테이너란? spring DI 컨테이너가 관리하는 객체를 bean (빈) 이라고 하며, 이 bean (빈) ..

Day.31 프로그래머스 - Lv.0알고리즘 2문제

항상 알고리즘을 매일 풀어야지 하면서 가끔 풀게 된다... 알고리즘보다 다른 공부를 더 하는데, 알고리즘을 통해 코드 구현력을 높이기로 했던 나의 다짐은 어디로.... 오늘 미뤄왔던 알고리즘 2문제를 해결했다. 오늘 해결한 문제는 다음과 같다 프로그래머스 - Lv.0 캐릭터의 좌표 https://school.programmers.co.kr/learn/courses/30/lessons/120861 프로그래머스 - Lv.0 영어가 싫어요 https://school.programmers.co.kr/learn/courses/30/lessons/120894 두 문제 다 뭔가 문제가 어렵게 느껴지진 않았는데, 어떻게 접근하면 좋을까에 대한 고민을 정말 많이 했다. 영어가 싫어요 문제를 어떻게 접근할까에 대한 생각을..

Day.30 JPA 그리고 영속성 컨텍스트

JPA 2022.12.09 - [스프링/JPA] - What is JPA(Java Persistence API)? 영속성 컨텍스트 2022.12.09 - [스프링/JPA] - JPA - 영속성 컨텍스트 심화 강의 첫 내용이 JPA와 영속성 컨텍스트였다. 과거에 네이버에서 개인 블로그를 운영할 때, 정리했던 내용들이기도 했고 공부를 했었는데 기억이 가물가물해서 다시 공부할 겸, 추가적으로 강의와 notion을 보며 정리하며 내 지식으로 만들었다. 과거에 JPA를 공부할 때, 그냥 그냥 그냥 이라는 느낌이었다면 오늘 다시 공부할 때는, 안 보이던 내용들이 보이기 시작했고, 아 ~ 이래서 아 ~ 이래서 ~~ 라는 느낌으로 바뀌었다. 확실히 과거랑 현재랑 획득하는 경험치가 다름을 느낀다.

Day.29 궁금한 점 질문, 그리고 이유 있는 코드

오늘 궁금했던 점을 직접 찾아보고, 읽어보고 정리해야겠다는 내용의 게시글을 찾아서 정리하고, 지식 곡간을 채워넣었다. 좋은 커밋 message 2022.12.08 - [기술면접 관련 및 참고하기] - 왜 Git의 Commit message는 중요할까?, 좋은 커밋 메시지란? 웹 애플리케이션 2022.12.08 - [기술면접 관련 및 참고하기] - 웹 애플리케이션의 이해 금일 피드백 내용은 다음과 같았다. 코드를 작성할 때, 계속 사용자 관점에서 바라보아서 로직을 구현할때도 그 관점이 그대로 반영되었다. 그래서 일까 여러 궁금증들이 생겼고, 이 궁금증들을 바탕으로 튜터님께 질문을 했다. 거기에서 나온 return은 다음과 같았다 " Backend 입장에서 생각할 것 " 우선 계속 UI관점에서 생각하지 말 ..

Day.28 스프링 AOP를 정리하며..

스프링 AOP Spring을 공부하다가 AOP라는 단어를 접했었다. 그래서 그때마다 AOP가 무엇인지 궁금했었고, 지식을 습득해야겠다고 생각했는데 바로 오늘이 그 날인가보다. 기존에 담아뒀던 강의들과 블로그들을 참고하며 나름 이해하려고 직접 포스팅 하고, 다음엔 기회가 된다면 그 코드들을 따라하며 AOP와 친해질 수 있도록 해봐야겠다. 2022.12.07 - [스프링] - 스프링 AOP 스프링 AOP 이 글은 우테코(봄의 AOP와 Spring AOP) 및 여러 정보들을 종합해 학습한 내용입니다. https://www.youtube.com/watch?v=hjDSKhyYK14&list=WL&index=84&t=305s https://engkimbs.tistory.com/746 https://yadon079...

Day.27 자바 진영의 스프링

스프링은 자바진영의 웹 어플리케이션 제작 지원을 도와주는 프레임워크다. 과거에 스프링을 공부하고 써본적이 있어서 금일 진행한 내용이 어렵게 느껴지진 않았다. 과거에는 서블릿이나 jsp 이런 기술들을 사용해서 웹을 제작하고 배포했었더라면 스프링은 그 기술들을 확장적용시켜 어노테이션 기반의 기술이 탄생했고, 그 외에도 스프링에서 내부적으로 지원해주는 라이브러리와 프레임워크들이 많아서 편리하게 웹을 개발하고 디자인 할 수 있다. Spring MVC를 통해 모델과 뷰, 컨트롤러들을 분리시켜 편리하고 확장성있게 개발이 가능하다는 장점이 있다. 사용자는 Controller를 조작해서 model을 통해 데이터를 가지고 오고, 그 정보를 바탕으로 시각적 표현을 담당하는 view를 제어해 사용자에게 정보를 전달한다. 스..