목록분류 전체보기 (718)
쌓고 쌓다
회원 서비스 회원 리포지토리랑 도메인을 사용하여 비즈니스 로직을 작성 회원 리포지토리에는 멤버를 넣었다 뺐다 느낌이지만 회원 서비스 클래스는 join 등.. 비즈니스에 가까움 MemberService package hello.hellospring.service; public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); /* 회원가입 */ public Long join(Member member) { validateDuplicateMember(member); memberRepository.save(member); return member.getId(); } /* 전체 회원..
개발한 기능을 테스트할 때 main 메소드를 통해 실행하거나 웹 애플리케이션의 컨트롤러로 기능을 실행한다. 이 방법은 준비하고 실행하는데 오래 걸리고, 반복 실행하기 어렵고, 여러 테스트를 한 번에 실행하기 어렵다. 그래서 자바의 JUnit이라는 프레임워크로 테스트를 실행한다. src/test/java 하위 폴더에 똑같은 패키지를 생성. save 메소드 테스트 public class MemoryMemberRepositoryTest { MemberRepository repository = new MemoryMemberRepository(); @Test public void saveTest() { Member member = new Member(); member.setName("name1"); reposit..
요구사항 데이터: 회원ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소가 선정되지 않아 메모리 기반으로 할 것임 컨트롤러: 웹 MVC의 컨트롤러 서비스: 핵심 비즈니스 로직 구현 (회원 중복가입 불가 로직 등...) 리포지토리: DB에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 비즈니스 도메인 객체 (EX. 회원, 주문, 쿠폰 등 DB에 저장되고 관리됨) 회원 클래스 package hello.hellospring.domain; public class Member { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public S..
https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 현재 좌표와 다음 좌표를 가지고 있다면 이 두 좌표를 통해 걸어본적이 있는 길인지 확인이 가능합니다. map을 통해 현재 좌표 x,y와 이동할 다음 좌표를 통해 걸어본적이 있는 길인지 확인합니다. (현재 좌표에서 다음 좌표로 map에 등록되어있는지 확인) => 주의! 확인시 양방향으로 확인해야함 양방향: (x,y) => (nx,ny) 그리고 (nx,ny) => (x,y) 1. 만약 걸어..
@Controller public class HelloController { @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam String name) { return "hello " + name; } } @ResponseBody ? html의 body 태그가 아니다. http에 head와 body가 있는데 그 body이다. 이 body에 직접 데이터를 넣는다. 리턴한 문자열이 클라이언트에 그대로 넘어간다. 이제. 문자열이 아닌 데이터를 요청이 들어왔다고 하자. 요청의 응답으로 Hello 객체를 반환해야한다. Hello 클래스 public class Hello { private String name; publi..
https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 2번째 행부터 시작한다. 4개의 열을 순차적으로 방문하며 이전 행의 3개의 열(같은 열은 제외)들의 값중 제일 큰 값을 현재 행(2번째 행)의 방문중인 열에 더하면 그 행에 도착할때까지 만들 수 있는 최고점이 된다. 즉, 이전 행을 이용해 큰 점수를 찾아 현재 행에 더하면 최고점이 된다. 이 방법을 끝행까지 차근차근 최고 점수를 만들자. 전체 코드 #include #include #in..
MVC (Model View Controller) View는 화면을 그리는데 집중하고 Controller, Model은 비즈니스 로직이나 내부 처리에 집중하자. Controller @Controller public class HelloController { @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template"; } } 웹에서 파라미터를 받을때 @RequestParam 어노테이션을 사용한다. model에 담으면 View에서 렌더링 할 때 사용한다. model에 키:"name"과 파라미..
ERD (Entity-Relationship Diagram) ER모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것이다. 개체-관계 모델(E-R model)? 개념적 데이터 모델로써 개체와 개체 간의 관계를 이용하여 현실 세계를 표현함. 핵심 요소: 개체, 속성, 관계 1. 개체(Entity) 사람이니 사물, 개념, 사건 등 다른 개체와 구별되는 모든 것을 뜻한다. ER 다이어그램에서 사각형으로 표현하고 안에 이름을 작성한다. 2. 속성(Attribute) 개체나 관계가 가지고 있는 고유한 특성이다. ER 다이어그램에서 타원으로 표현하고 안에 속성 이름을 작성한다. 속성 같은 경우 추가적으로 속성의 분류하여 더욱 구체적으로 ER다이어그램에서 표시가 가능하다. 단일 값 속성과 다중값..