1. JAVA
-
[Servlet]Filter를 통해서 특정 url 요청이 들어오면 응답 바디를 변환하여 클라이언트에게 전달하기1. JAVA/1.4 업무관련 알게 된 내용 2024. 9. 17. 16:14
프론트앤드 프로젝트를 하며 백엔드 로직도 살짝 만지게 되었는데/rest라는 url 요청이 들어오면 /rest를 제외한 url로 변환하여 해당 백엔드 로직에 접근하고 , 응답 바디를 커스터마이징 하도록 구현하였다.ex ) /rest/test -> /test에 해당하는 컨트롤러에 접근 -> 응답 데이터형식이 기존 list:[{...},{...}] 라면, /rest로 시작하는 요청건이라면 result로 한번 더 감싸서 result:{list:[{..},{..}]} 반환 처음에는 interceptor에서 구현하려고 삽질을 하였지만, 인터셉터는 바디를 변환하는데 제한적이라는 것에 깨달음을 얻어 좀더 폭 넓은 Filter를 통하여 기능을 구현하였다. 참고 ) 인터셉터와 필터와의 차이인터셉터 : 스프링M..
-
JAVA_실습_19_Stream API를 활용한 이중포문 만들고 참조타입 List 형태로 반환하기1. JAVA/1.2 실습 2023. 8. 30. 16:32
세미프로젝트 진행중이며 내가 하는 프로젝트상 배열을 쓸 일이 은근 많아서 for문의 지옥에 갇혀있는 상황이다 for문은 가독성은 좋지만 코드가 지저분해보이기 때문에 Stream API를 통해 써보고 싶었으며 참조타입 형태의 배열로 바로 반환해보고 싶어 해당 게시글을 작성해본다. 내가 빡대가리인건지 겨우 해결함.. package com.project.concertView.web.service; import lombok.*; import lombok.extern.slf4j.Slf4j; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.List; ..
-
220425_JAVA_문제풀어보기(자판기프로그램 ver 3)1. JAVA/1.3 문제 2022. 4. 25. 12:03
자판기 프로그램을 또 수정 보완해보았다.. 패키지 구성은 하기와 같이 하였으며 1. admin 패키지 : 관리자가 물건을 채워넣고 수입을 관리하는 패키지 2. Drink, Stuff 패키지 : 자판기 판매품목==> 물건(Stuff) or 음료(Drink) 1) 음료(Drink) package admin.Product.Drink; public abstract class Drink { private int price,stock; private String name; Drink(int price, String name){ this.price = price; this.name = name; } public int getStock() { return stock; } public void setStock(int s..
-
220421_JDBC_정보 입력프로그램(2)1. JAVA/1.3 문제 2022. 4. 21. 23:01
전에 했던 정보 입력 프로그램이 각 클래스별로 중복되는 코드가 너무 많았어서 추상클래스를 이용해서 한번 작성해보았다. (NullPointException이 자꾸 떠서 애먹었다.ㅠㅠㅠ) 일단 틀은 똑같고 알맹이만 다르기 때문에 커넥션 연결, Statement ,PreparedStatement 는 공통적으로 중복되어 추상 클래스에 셋팅해두었고 학생 정보 프로그램, 선생님 정보 표현 프로그램이 상속받게 하였다..ㅎ 1. 추상클래스 : 학생, 선생님 정보 프로그램이 공통으로 구현되는 클래스를 추상클래스로 셋팅하였다. package jdbc.tmt; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException;..
-
220419_JAVA_문제풀어보기(정보 입력프로그램)1. JAVA/1.3 문제 2022. 4. 19. 19:18
학생/ 선생님 정보 입력 프로그램을 만들어보았다.. 별다른 구현은 하지 못하고 그냥 입력받아서 저장만 하는..? 그런 프로그램이다. 패키지구성은 하기와 같이 했다..ㅎ 1. VO 클래스 : 학생, 선생님 개개인 정보를 입력해주는 클래스이다. 정보를 입력하는데는 공통된 메소드가 들어가니까 이를 구현할 StudVO, TeacVO 클래스를 만들어서 구현시키게 해주었다. package VO; public interface VO { public String getName(); public void setName(String name); public String getId(); public void setId(String id); public String getGen(); public void setGen(int ..
-
220418_JAVA_문제풀어보기1. JAVA/1.3 문제 2022. 4. 18. 19:58
문제 ] 숫자를 입력받아서 숫자만큼의 크기를 갖는 정수배열을 만들고 랜덤하게 1~25 사이의 정수를 발생시켜서 배열에 기억시켜 그 배열의 내용을 출력하는 프로그램 작성하시오. 단, 배열 초기화, 배열셋팅, 배열 출력은 ArrProc라는 클래스에서 기능 구현. Main 클래스에서는 만들어진 기능을 가져다 사용하는 것으로 한다. 1. ArrProc 클래스 작성 import java.util.Scanner; public class ArrProc { int[] ar; Scanner sc = new Scanner(System.in); public ArrProc() { //객체 생성시 바로 출력되도록 생성자 함수에서 작성함 System.out.print("숫자 입력 : "); int no = sc.nextInt()..
-
22041_JAVA_문제풀어보기(자판기프로그램2)1. JAVA/1.3 문제 2022. 4. 10. 19:16
기존에 했던 것에서 재고를 추가해서 다시 코드를 짜보았는데.. 원하는 대로는 나오긴 했는데...코드가 좀 미흡한거같다.. 다시 더 짜봐야겠다.. 일단 패키지는 이렇게 구성해보았고, 겉에서는 보이지 않는 BACK, 자판기의 종류(음료수자판기), FRONT 패키지에는 자판기 겉모습과 소비자 클래스를 넣어주었다. package drinkvend.back; import java.util.Scanner; import drinkvend.drink.Cola; import drinkvend.drink.Drink; import drinkvend.drink.GreenTea; import drinkvend.drink.Juice; import drinkvend.front.Drinkvending; //자판기 내부 재고 관리하는..
-
JAVA_18_실습_JDBC1. JAVA/1.2 실습 2022. 4. 4. 18:51
// JDBC 사용을 위한 클래스를 준비한 패키지를 임포트 한다. import java.sql.*; public class Test01 { public Test01() { try { //DB 작업 : 드라이버로딩 > 커넥션 > 스테이트먼트 > 질의명령 작성 > 꺼내오는 자업 //Class.forName() : 외부클래스 로딩하는 함수 /* 1. JDBC와 외부 데이터베이스를 연결할 드라이버를 프로그램에서 가지고 와야 한다. 외부 클래스를 로딩하는 함수 Class.forName() 드라이버마다 외부 클래스의 이름이 조금씩 달라진다. */ Class.forName("oracle.jdbc.driver.OracleDriver"); /* 명령이 실행되면 JDBC가 해당 드라이버를 이용해서 연결 시도한다. */ S..