본문 바로가기

전체 글76

23.06.28) Spring 나만의 Blog 구현하기 데이터 베이스에 현재 시각이 저장 되지 않음 더보기 JPA Timestamped null 이란 키워드로 구글링 후 정보를 찾았다. application에 @EnableJpaAuditing 를 설정함으로써 JPA Auditing 을 사용한다고 알려줘야 했다. 참고: https://thalals.tistory.com/220 수정할 때 ID가 아닌 비밀번호로 일치여부를 확인한 후 수정해야 하는데 방법을 모름 더보기 private Blog findBlog(String password) { return blogRepository.findById(password).orElseThrow(() -> new IllegalArgumentException("선택한 메모는 존재하지 않습니다.") ); } findById는 L.. 2023. 6. 28.
23.06.27) Spring 나만의 Blog 구현하기 API 구현 더보기 전체 게시글 목록 조회 API 제목, 작성자명, 작성 내용, 작성 날짜를 조회하기 작성 날짜 기준 내림차순으로 정렬하기 게시글 작성 API 제목, 작성자명, 비밀번호, 작성 내용을 저장하고 저장된 게시글을 Client 로 반환하기 선택한 게시글 조회 API 선택한 게시글의 제목, 작성자명, 작성 날짜, 작성 내용을 조회하기 (검색 기능이 아닙니다. 간단한 게시글 조회만 구현해주세요.) 선택한 게시글 수정 API 수정을 요청할 때 수정할 데이터와 비밀번호를 같이 보내서 서버에서 비밀번호 일치 여부를 확인 한 후 제목, 작성자명, 작성 내용을 수정하고 수정된 게시글을 Client 로 반환하기 선택한 게시글 삭제 API 삭제를 요청할 때 비밀번호를 같이 보내서 서버에서 비밀번호 일치 여부를.. 2023. 6. 27.
23.06.26)Spring Spring의 탄생 배경 더보기 Spring이 탄생 하기 전에는 EJB(EnterpriseJavaBeans)와 같은 기술을 중심으로 개발을 했다. 하지만 EJB는 복잡하고 무거워서 개발자들은 실제 비즈니스 로직보다는 플랫폼 자체의 복잡성을 다루는 데 더 많은 시간을 소비 했다. 그리고 테스트도 배포를해야만 가능했기에 이러한 문제들을 해결하기 위해서 Spring이 탄생했다. POJO(PlainOldJavaObject) 더보기 Spring은 POJO(PlainOldJavaObject)프로그래밍을 지향한다. POJO란 말 그대로 단순한 오래된 자바 객체이다. 다른 라이브러리나 프레임워크를 사용하지 않고 순수한 자바 언어로만 객체를 구성하도록 하는 것이다. 외부 라이브러리나 프레임워크를 사용하여 객체를 만든다면.. 2023. 6. 26.
23.06.25)Spring 강의 노트 3 Layer Architecture 란? 더보기 하나의 클래스에서 기능이 추가되고 API가 많아지게 되면 시간이 지날수록 코드가 쌓이면 유지보수 하기 힘듦. 해당 서비스를 개발하는 사람이 바뀔 때 이해하기도 힘듦. 이를 해결하기 위해 처리 과정을 3개의 계층으로 분리해서 처리 Presentation Layer: 사용자와의 상호 작용을 처리하며, UI 및 사용자 요청의 처리를 담당 Business Logic Layer: 애플리케이션의 핵심 기능적인 로직을 수행하며, 계산, 데이터 변환 등의 기능을 담당 Data Access Layer: 데이터베이스와의 통신을 담당하며, 데이터의 검색, 저장, 업데이트 등을 수행. JPA 란? 더보기 JPA를 알기 전에 ORM을 알아야 한다. ORM이란 Object-Rel.. 2023. 6. 25.
23.06.24) Spring 강의 노트 자바에선 JSON 타입을 지원하지 않는다. 그러면 어떻게 JSON 데이터를 반환해야 할까? 더보기 1. JSON 형식의 html 파일을 반환해 준다. 2. @ResponseBody 어노테이션을 추가해서 JSON 형식의 문자열로 반환해 준다. @GetMapping("/response/json/string") @ResponseBody public String helloStringJson() { return "{\"name\":\"Robbie\",\"age\":95}"; } 3. 객체 반환하기. Spring에서는 자동으로 Java 객체를 JSON으로 반환해 준다. @GetMapping("/json/class") @ResponseBody public Star helloClassJson() { return new.. 2023. 6. 24.
23.06.23) Spring 강의 노트 ●웹 서버의 기본 동작 원리 브라우저를 통해 HTTP Request로 웹사이트를 웹서버에 요청. 웹서버는 요청을 승인하고 HTTP Response를 통해 웹사이트 데이터를 브라우저에 전송 브라우저는 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 띄어 줌. ●WAS( Web Application Server) ● Web Server 는 HTTP의 요청을 받아들여 정적인 콘텐츠를 사용자에게 전달해 주는 역할 동적인 컨텐츠는 웹서버 자체적으로 처리하기 어렵기 때문에 WAS에 전달함. ● WAS는 동적인 콘텐츠를 동작시킬 수 있음. 대표적인 WAS로는 Tomcat, JBoss 등이 있음. ●SpringBoot와 Spring ● Spring 프레임워크에는 AOP, IoC/Di, PSA 등 아주 강력한 핵심.. 2023. 6. 23.
프로그래머스) 최소 직사각형 자바 문제 풀이 ●문제: 최소 직사각형 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스 코드: https://github.com/NHclub/algorithm/blob/main/src/_06_20/Problem30.java ★문제 해결 아이디어: 1. 가로와 세로의 길이를 비교하여 큰 수를 0번 인덱스에 저장한다 2. 큰 수인 0번 인덱스에서 max 값을 뽑고, 작은 수인 1번 인덱스에서 min 값을 뽑는다. 3. 두 수를 곱한 값을 반환한다.. 2023. 6. 23.
23.06.22) Java 채팅 프로그램 구현하기 ●간단한 채팅 프로그램 구현하기 여러 사용자가 메시지를 보내고 받을 수 있는 채팅 프로그램입니다. ●기능 사용자 추가: 새로운 사용자를 채팅방에 추가할 수 있는 기능. 각 사용자는 고유한 사용자 이름을 가져야함. 메시지 보내기: 전송자의 이름과 메시지 내용을 포함한 메시지 보내기 기능. 메시지 확인: 최근에 보낸 메시지를 확인하는 기능. 채팅방의 대화 기록을 출력해야 함. 소스 코드: https://github.com/NHclub/Implementation/tree/main/src/chatProgram ●첫 번째 문제점: 멤버 설정과 클래스 구성 클래스와 멤버 변수들의 네이밍과 클래스에 맞게 분류를 혼자 힘으로 하지 못하고 있음.. 이것에 대해 더 많은 프로그램들의 동작 방식을 익혀야 함 ●두 번째 문제.. 2023. 6. 22.
23.06.21) Java 계좌 관리 프로그램 구현하기 ●계좌 관리 프로그램 구현하기 은행에서 고객들의 계좌를 관리하는 프로그램입니다. ●구현 멤버 Account 클래스 customerName: 고객 이름 balance: 현재 잔액 accountNumber: 계좌 번호 deposit(long amount, ): 입금 기능 withdraw(long amount): 출금 기능, 출금하려는 금액이 현재 잔액보다 많을 경우 출금이 되지 않아야 함. getBalance(): 현재 잔액 출력 소스 코드: https://github.com/NHclub/Implementation/tree/main/src/account ●의문점: 입금과 출금을 왜 Bank 클래스가 아니라 Account 클래스에서 진행해야 되는가? 캡슐화의 원칙에 따라서 객체에 대한 연산은 객체 내부에서 일.. 2023. 6. 21.