전체 글 193

Day.33 어노테이션

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

Spring- Lombok의 이해와 @Annotation (계속 추가합니다.)

자바진영의 어떤 서비스를 다루다보면 우리는 편하게 @Annotation을 접할 수 있을 것이다. 이 어노테이션은 각 프레임워크나 라이브러리가 지원해주는 다양한 기능들을 내포하고 있다. 물론 무조건 사용하라는 법은 없지만 아무래도 이미 개발된 내용의 기능들을 가져다 사용하면 코드의 가독성도 증가하고 해당 로직을 작성하는데 소모되는 에너지를 줄일 수 있을 것이다. (직접 어노테이션을 만들어서 사용도 가능하다.) 이 글은 해당 어노테이션이 어떤 기능을 제공하는지를 학습하면서, 그 과정속에서 얻게된 정보들을 정리하는 글 입니다. 1. Annotation - @을 이용한 주석, 코드에 주석을 달아 특별한 의미를 부여한 것 - 컴파일러가 특정 오류를 억제하도록 지시하는 것과 같이 프로그램 코드의 일부가 아닌 프로그..

스프링 2022.12.14

5주차 WIL 2022.12.05 ~ 12.11

FACTS(사실, 객관) : 이번 일주일 동안 있었던 일, 내가 한 일 Spring 시작 -> 강의 부실 개인 프로젝트 제출 -> 간단한 crud 구현 -> Restful Api 설계 이유있는 코드 작성 FEELINGS(느낌, 주관) : 나의 감정적인 반응, 느낌 스프링 강의를 어떻게 활용할 것인가에 대한 focus 내용이 부실한데... 답은 인프런인가? FINDINGS(배운 것) : 그 상황으로부터 내가 배운 것, 얻은 것 JPA와 영속성 컨텍스트 (복습) (https://jipang9-greedy-pot.tistory.com/114),(https://jipang9-greedy-pot.tistory.com/113) 좋은 commit message (https://jipang9-greedy-pot.tis..

WIL(Week I Learned) 2022.12.14

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를 공부할 때, 그냥 그냥 그냥 이라는 느낌이었다면 오늘 다시 공부할 때는, 안 보이던 내용들이 보이기 시작했고, 아 ~ 이래서 아 ~ 이래서 ~~ 라는 느낌으로 바뀌었다. 확실히 과거랑 현재랑 획득하는 경험치가 다름을 느낀다.

JPA - 영속성 컨텍스트 (2022.12.11 추가)

전에 JPA가 무엇인지 간략하게 짚고 넘어갔고, 이번엔 왜 JPA가 중요한지에 대해 짚고 넘어가고자 한다. JPA가 부여받은 임무는 다음과 같다. 객체와 관계형 데이터베이스 매핑하기(Object Relational Mapping) 영속성 컨텍스트 객체와 RDB를 Mapping? 영속성 컨텍스트? 대체 이 것들이 무엇일까? 왜 JPA에서 이 두가지가 중요한지 궁금증이 생길 것이다. 우선 영속성 컨텍스트에 대해 짚고 넘어가야 한다. 1. 영속성 컨텍스트란 무엇인가? 2. Entity 생명 주기 3. 영속성 컨텍스트의 장점이자 이점 1. 영속성 컨텍스트? 영속성 컨텍스트는 애플리케이션과 데이터베이스 사이에 데이터를 보관하는 논리적 개념인데, 쉽게 설명하면 "엔티티를 영구 저장하는 환경" 이라는 뜻..

스프링/JPA 2022.12.09

What is JPA(Java Persistence API)?

if(백엔드 개발자를 희망하는 사람 中) if(Spring Framework를 사용하는 사람이라면) known JPA 웃고자 대충 만들었다. 그 정도로 Spring을 사용해본 경험이 있으면 JPA를 모를수가없다. 오늘은 이 JPA와 관련해 이야기를 나눠보려고 한다. 이 글은 인프런-김영한 자바 ORM 표준 JPA 프로그래밍을 참고한 내용입니다. 우리는 Spring JPA를 사용하면서 이 JPA가 무엇인지, 왜 사용하는지를 여러 번 고민해본 적이 있을 것이다. JPA는 그냥 어마무시한 놈이다 이 JPA를 사용하는 이유는 바로 이 것이다 객체와 관계형데이터베이스(RDB)간의 패러다임의 불일치를 해결 - 목차 - 1. JPA란? 2. JPA를 왜 사용해야 하나? 3. JPA의 동작과정 1. JPA란? JPA(..

스프링/JPA 2022.12.09

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

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

웹 애플리케이션의 이해

웹서버? 웹 애플리케이션 서버? was 한 개만으로 운영을 하다보면 서버의 과부하의 우려 그래서 오류 발생 시 오류 화면도 노출이 불가능하다. (오류에 대한 부담이 커진다 ) 그래서 정적 리소스는 웹 서버가 처리해버리고, 애플리케이션 로직같은 동적 처리가 필요하면 was에 요청 (이로 인해서 효율적인 리소스 관리가 가능) 공통점 : HTTP를 기반으로 동작한다는 점 차이점: 웹 서버 -> 정적 리소스 제공, 그래서 특정 사용자에게 다르게 보여주는 방식이 불가. (파일 - 정적 리소스) WAS는 웹 서버의 기능을 포함하며, 프로그램 코드를 실행해서 애플리케이션 로직을 수행 가능 (애플리케이션 로직 수행) 서블릿(Servlet) 전체적인 흐름 : 사용자가 url에 요청을 함 -> was 서버에서 요청 메시지..