분류 전체보기 48

여행기 - 도시, 국가 검색 정리 (전반적인 스프링 코드 이해)

트립피스 플젝을 진행하며...다른 팀원들이 쓴 코드를 보면서 dto라는 것을 처음 알았다..DTO란?DTO(data transfer object, 데이터 전송 객체)클라이언트와 서버가 데이터를 주고받을 때 사용하는 객체RequestDTO클라이언트로부터 데이터를 받을 때 사용ResponseDTO서버에서 클라이언트로 데이터를 보낼 때 사용https://blog.scottlogic.com/2020/01/03/rethinking-the-java-dto.htmlpublic class CityRequestDto { @Getter @NoArgsConstructor @AllArgsConstructor public static class searchDto{ @NotNull(message..

UMC_Back 2024.08.18

Week 3_(2)

1. 스프링 컨테이너와 스프링빈2. 싱글톤 컨테이너3. 컴포넌트 스캔   저번 포스팅에 이어 싱글톤에 대해 더 자세히 살펴보자. 2. 싱글톤 컨테이너싱글톤 방식의 주의점객체 인스턴스를 하나만 생성해서 공유하는 싱글톤 방식은 여러 클라이언트가 하나의 동일한 객체 인스턴스를 공유하기 때문에 해당 객체는 상태를 유지(stateful)하게 설계하면 안된다.즉, 무상태(stateless)로 설계해야 한다!!  예시로 알아보자.public class StatefulService { private int price; // 상태를 유지하는 필드 public void order(String name, int price){ System.out.println("name = " + name + " pr..

UMC_Back 2024.04.29

Week 3_(1)

1. 스프링 컨테이너와 스프링빈2. 싱글톤 컨테이너3. 컴포넌트 스캔  1. 스프링 컨테이너와 스프링 빈 스프링 컨테이너 생성스프링 컨테이너는 간단히 말해서 객체를 담고있는 것! ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);이전 포스팅에서 위와 같은 코드를 작성했었다.ApplicaitonContext는 인터페이스이면서 스프링 컨테이너에 해당한다.  스프링 컨테이너 생성 과정1.스프링 컨테이너를 생성할 때는 구성 정보를 지정해야 하는데AppConfig.class가 이 구성 정보에 해당한다.그러면 스프링 컨테이너는 key가 이름이고 value가 객체인 스프링 빈을 생성하게 된다.2...

UMC_Back 2024.04.28

Week 2

1. 객체 지향 설계와 스프링 2. 스프링 핵심 원리 이해 1 - 예제 만들기 3. 스프링 핵심 원리 이해 2 - 객체 지향 원리 적용 1. 객체 지향 설계와 스프링 스프링의 핵심 - 스프링은 자바 언어 기반의 프레임 워크 - 자바 언어의 가장 큰 특징 : 객체 지향 언어 - 스프링은 좋은 객체 지향 애플리케이션 개발할 수 있도록 도와주는 프레임워크 그렇다면 좋은 객체 지향이란 무엇일까? 키워드는 바로 다형성이다. 다형성 예를 들어 자동차와 운전자를 생각해보자 자동차의 역할(인터페이스)만 구현되어 있으면 운전자는 자동차의 구현(차 기종)이 어떠하든 운전을 할 수 있다. 운전자는 자동차의 내부 구조를 몰라도 되고 내부 구조가 변경되어도 영향을 받지 않는다. 또한 구현 대상 자체를 변경해도(차 기종 변경) ..

UMC_Back 2024.04.06

Week 1

1주차 : 자바 기초 & 스프링 입문 한 달 전에 동일한 스프링 입문 강의를 보면서 공부했었기 때문에 이해하는데 큰 어려움이 있지 않았다. 앞으로가... 걱정일뿐.. 에휴 https://oyatplum.tistory.com/43 https://oyatplum.tistory.com/44 https://oyatplum.tistory.com/45 https://oyatplum.tistory.com/46 눈물나는 나의 코딩 기록은 위를 참고해주세요~ 자바 기초 정리 사진 업로드가 막혀서 자바는 노션 정리 링크로 대신합니당 https://dear-echinodon-f3e.notion.site/JAVA-7504b73bd70d40dcb4e4025567020d58?pvs=4 스프링 입문 정리 1. 웹 기초 정적 컨텐츠..

UMC_Back 2024.03.30

스프링 기초4

회원 관리 예제를 웹 mvc를 통해 개발해보겠습니다. 회원 웹 기능 - 홈 화면 추가 회원 웹 기능 - 등록 회원 웹 기능- 조회 1. 회원 웹 기능 - 홈 화면 추가 이전 시간까지 열심히 만들어 놓은 멤버 컨트롤러를 통해 회원을 등록하고 조회하는 기능을 만들어보겠습니다. 먼저 아주 단순한 홈 화면을 추가해봅시다. HomeController를 생성하고 localhost:8080에 home.html을 호출했습니다. 그리고 이렇게 단순한 html을 생성한 뒤 실행하면 잘 뜨네용 그런데 이상한 점이 있습니다. 뭘까용?? 분명 이전에 static으로 index.html을 welcome page로 만들어 줬는데 뜨지 않네요. 그 이유는 우선 순위 때문입니다. welcome page와 같은 정적 컨텐츠는 스프링 컨..

Spring 2024.02.01

스프링 기초3

스프링 빈을 등록하고 어떻게 의존 관계를 설정하는 지 알아봅시다. 컴포넌트 스캔과 자동 의존 관계 설정하기 자바 코드로 직접 스프링 빈 등록하기 1. 컴포넌트 스캔과 자동 의존 관계 설정하기 기존에 만든 서비스에 화면을 붙이려고 합니다. 즉, 실제로 회원 가입을 하고 회원 가입된 결과를 html로 보여주려고 합니다. 그러려면 컨트롤러와 뷰 템플릿이 필요하겠죠? 우선 멤버 컨트롤러를 만들 것입니다. 멤버 컨트롤러는 멤버 서비스를 통해서 회원 가입하고 데이터를 조회할 수 있어야 합니다. 이런 것을 서로 의존 관계가 있다고 표현합니다. (멤버 컨트롤러가 멤버 서비스를 의존한다.) controller package에 MemberController를 생성했습니다. 그리고 @Controller 어노테이션을 작성해줍..

Spring 2024.01.28

스프링 기초2

회원 관리 예제를 만들어 봅시다. 비즈니스 요구 사항 정리 회원 도메인과 레포지토리 생성 회원 레포지토리 테스트 케이스 작성 회원 서비스 개발 회원 서비스 테스트 1. 비즈니스 요구 사항 정리 가장 간단한 요구 사항으로 진행합니다. - 데이터 : 회원id, 이름 - 기능 : 회원 등록, 조회 - 아직 데이터 저장소가 선정되지 않음(가상의 시나리오. 즉 db가 결정되지 않음) 컨트롤러는 지금까지 사용했던 컨트롤러. 서비스는 '중복 회원 가입 불가' 등의 핵심 비즈니스 로직. 도메인에는 데이터 베이스에서 저장하고 관리하는 객체 리포지토리는 도메인 객체를 가지고 핵심 비즈니스 로직(서비스)이 동작하도록 구현. 구현할 클래스의 의존 관계는 다음과 같습니다. 회원 비즈니스 로직에는 MemberService. 회원..

Spring 2024.01.27

스프링 기초1

이 강의를 보며.. 스프링과 친해져보겠습니다. 환경설정 - welcome page / thymeleaf 템플릿 엔진 웹 기초 - 정적 컨텐츠 / MVC와 템플릿 엔진 / API 1. 환경 설정 먼저 프로젝트를 생성하면 이러한 폴더 구조를 만나게 됩니다. 낯설군요. 자동적으로 HelloSpringApplication이 만들어져 있습니다.(프로젝트명 : hello-spring) 이 곳의 main메서드에서 시작이 됩니다. `@SpringBootApplication` 어노테이션을 통해 스프링 부트 프레임워크를 사용하고 있습니다. Welcome page 생성 welcome page는 말 그대로 첫 화면이겠죠. 위치는 src/resources/static/index.html 입니다. html코드는 중요하지 않기 때..

Spring 2024.01.26

우아한테크코스 - 6기 프리코스 후기

Week 1 - 숫자 야구 Week 1 과제는 숫자 야구 게임이다. 순수 Vanila JS를 사용해 조건대로 로직을 구현한 뒤 테스트 케이스까지 통과하면 성공! 세오스 첫 주차 과제로 순수 Vanlia JS를 사용해 본 적은 있지만 html 파일을 사용한다던가 react, next를 사용해 웹 페이지를 구현했지 이렇게 코테처럼 정말 코드만 짜서 돌리는 건 처음 해봤다.. 물론 학교 다닐 땐.. 파이썬, C, C++, 어셈블리 등.. 아주 잠깐 비슷하게 로직만 짜본 것 같긴 한데 기억도 안 난다^^;; 아무튼 단순히 웹만 구현할 때보다 자바스크립트에 대해 더 자세하게 공부할 수 있었다. 첫 주차라 그런지 과제는 어렵지 않았는데 node로 프로그램을 돌리는 방법이나 테스트 케이스를 실행시키는 등의 과정이 더..

Javascript 2023.11.30