분류 전체보기 229

[TIL] 2022.01.26 Java 공부 / 면접 질문 정리

https://nazero.tistory.com/235 Java) 1차 및 2차 배열 선언 / 타입추론 var https://www.notion.so/1-2-6f122cbd55d740c2afae19acff137ef5 1차 및 2차 배열 선언 배열이란? www.notion.so https://www.notion.so/var-d8d6a5aceec042bfbddbc569a46c207b 타입추론, var 타입추론이란? www.not.. nazero.tistory.com https://nazero.tistory.com/236 Java) 선택문 / 반복문 https://www.notion.so/f744734049574bd9a545fbc13d03d1e4 선택문 if - then문 www.notion.so https:..

TIL 2022.01.26

[TIL] 2022.01.23 Spring 공부

https://nazero.tistory.com/225 Spring) 스프링 빈과 의존관계 nazero.tistory.com 블로그에 내용 정리하는데에 너무 신경 써서 시간을 너무 잡아먹더라 그래서 강의자료에 필기한 내용을 올렸다 요약 : 해당 클래스의 생성자에 다른 클래스를 주입하는 코드를 작성하고, 그 생성자 위에 @Autowired를 달아주면 스프링 컨테이너에 미리 등록되어있는 객체를 생성자에 주입해준다 이것이 DI(Dependency Injection : 의존성 주입) @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberS..

TIL 2022.01.23

[TIL] 2022.01.22 Spring 공부

https://nazero.tistory.com/224 Spring) 회원관리 예제 - 백엔드 개발 일반적인 웹 어플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈 nazero.tistory.com 알게된 점 : null이 발생할 수도 있기 때문에 데이터를 Optional로 감싸서 사용한다. Optional에서 제공하는 메소드를 사용해서 null 발생 시 처리 로직을 작성한다 @AfterEach : 테스트코드 함수 실행 후 매번 바로 이어서 실행해야하는 코드 작성 @BeforeEach : 테스트코드 함수 실행 전 매번 실행해야 하는 코드 작성 if(____ == null)..

TIL 2022.01.23

Spring) 회원관리 예제 - 백엔드 개발

일반적인 웹 어플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체 클래스 의존 관계 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변견할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등 다양한 저장소를 고민 중인 상황으로 가정 개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용 https://github.com/NayoungBae/springIntroduction/commit/a31e0c9017991ab941b5083872dc59a6b5c2695d?diff=split 회원 관리 예제 ..

Spring Framework 2022.01.22

Spring) API

API @ResponseBody 문자 반환 @ResponseBody 를 사용하면 뷰 리졸버(viewResolver)를 사용하지 않음 대신에 HTTP의 BODY에 문자 내용을 직접 반환(HTML BODY 태그가 아님) @Controller public class HelloController { @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name) { return "hello " + name; } } @ResponseBody 객체 반환 객체를 반환하면 객체가 JSON을 변환됨 @Controller public class HelloController { @GetMapping("he..

Spring Framework 2022.01.21

[TIL] 2022.01.21 Spring 공부 - API

https://nazero.tistory.com/223 Spring) API API @ResponseBody 문자 반환 @ResponseBody 를 사용하면 뷰 리졸버(viewResolver)를 사용하지 않음 대신에 HTTP의 BODY에 문자 내용을 직접 반환(HTML BODY 태그가 아님) @Controller public class HelloControll.. nazero.tistory.com Spring 웹 개발 기초 정적 컨텐츠 MVC와 템플릿 엔진 API 알게된 점 : @RestController 어노테이션만을 써야 객체로 반환할 수 있는 줄 알았음 @Controller를 사용하고 함수 위에 @ResponseBody 어노테이션을 적고, 객체를 반환해도 된다

TIL 2022.01.21

JPA) JPA 소개

JPA? - Java Persistence API - 자바 진영의 ORM 기술 표준 ORM? - Object-Relational Mapping(객체 관계 매핑) - 객체는 객체대로 설계, 관계형 데이터베이스느 관계형 데이터베이스대로 설계 - ORM 프레임워크가 중간에서 매핑 - 대중적인 언어에는 대부분 ORM 기술이 존재 JPA는 애플리케이션과 JDBC 사이에서 동작함 개발자가 직접 JDBC를 사용하는 것이 아니고 JPA에게 명령을 하면 JPA가 JDBC를 사용해서 SQL을 호출하고 그 결과를 받아 동작함 JPA 동작 - 저장 1. 객체를 넘김 2. JPA가 객체를 분석 3. JPA가 적절한 쿼리 생성 4. JPA가 JDBC API를 사용해서 쿼리를 DB에 보내고 결과를 받아옴 5. 이로써 패러다임 불일..

JPA 2022.01.21

[TIL] 2022.01.20 JPA 공부

https://nazero.tistory.com/219 JPA) SQL 중심적인 개발의 문제점 1. 데이터베이스 세계의 헤게모니(주도권) : 관계형 DB 요즘엔 개발할 때 대부분 객체지향 언어를 사용함 데이터를 저장하기 위해 RDB도 사용함 다양한 유형의 데이터베이스의 주도권은 RDB(Oracle, nazero.tistory.com 요약 : 객체지향 프로그래밍 언어와 데이터베이스는 안 맞는 것이 많다 객체지향 언어는 객체 기반으로 코드가 이뤄지는데, 데이터베이스에는 객체 자체가 없고, PK/FK 가지고 JOIN해서 다른 테이블과 연관관계를 짓는다 개발자는 결국 SQL에 집중하는 개발을 해왔다 하지만 JPA를 사용하면 JPA에서 제공하는 함수들이 SQL 작성하는 데에 대신해주기 때문에 편리하게 개발할 수 ..

TIL 2022.01.20

JPA) SQL 중심적인 개발의 문제점

1. 데이터베이스 세계의 헤게모니(주도권) : 관계형 DB 요즘엔 개발할 때 대부분 객체지향 언어를 사용함 데이터를 저장하기 위해 RDB도 사용함 다양한 유형의 데이터베이스의 주도권은 RDB(Oracle, MySQL, ...) 그래서 지금 시대는 객체를 관계형 DB에 저장해서 관리해야하는 시대임 하지만 문제는 코드를 보면 다 DB SQL임! 결국 SQL 중심적인 개발이 된다 테이블 당 모든 CRUD 쿼리 다 짜야 함 갑자기 tel 필드를 추가해달라고 하면? -> 미리 짜놓은 SQL에 tel 컬럼을 추가해야 함 : 너무 번거로움 SQL에 의존적인 개발을 피하기 어려움 2. 패러다임(체계, 틀)의 불일치. 객체 VS 관계형 데이터베이스 객체지향 사상과 관계형 데이터베이스 사상은 다름 RDB는 데이터를 정규화..

JPA 2022.01.20