JPA Project 근황
·
Spring Boot
랭킹닭컴에서 도시락을 구매함으로서 취약계층분들에게 기부하기 기능을 추가한 프로젝트. 상세보기 프론트 및 댓글 백엔드 작업. 기능은 구현했지만 클린코드를 위해 조금 씩 수정을 해야겠다.
JPA 단 방향(연관 관계)
·
Spring Boot
Post : 게시글 Reply : 댓 글 post가 주인이지만 reply안에 있는 private Post post; 로 접근하는 게 좋다. 일 대 다 1 > N post 테이블에 @OnetoMany @JoinColum(name = "POST_ID") 조인 컬럼 안 쓰면 하나의 테이블이 더 생긴다, private List replies = new ArrayList (); reply를 칼럼으로 인식하지 말고 연관 관계로 인식해라 @OnetoMany 쓸 때는 조인 칼럼도 같이 써서 fk의 이름도 정해주는 게 좋다. 이렇게 일대다로 연결을 해봤다. 디비에서 조회 SELECT * FROM POST; SELECT * FROM REPLY; Post에 Reply Id 가 있는 게 아니라 Reply에 Post Id 가 ..
Get, Post, Redirect
·
Spring Boot
"Get, post, redirect" 패턴은 사용자가 웹 페이지를 제출하고 서버가 이를 처리하고 응답을 반환하는 과정에서 사용된다. 이 패턴은 일반적으로 웹 애플리케이션에서 사용자 인터페이스를 보완하는 데 사용된다고 한다. (웹 애플리케이션에서 사용되는 HTTP 메서드와 기능을 나타낸다) 각 특징, 사용방법 및 어떤 동작을 할 때 사용하는지 알아보자. 1. GET 정보를 요청하기 위한 메소드이다. 서버로부터 데이터를 요청하고 응답으로 데이터를 받아온다. 데이터를 URL의 쿼리 매개변수나 경로 변수로 전달할 수 있다. 요청이 캐시될 수 있으며, 브라우저 히스토리에 기록된다. 안전한 연산으로 간주되며, 동일한 요청을 여러 번 보내더라도 동일한 결과를 얻어야 한다. 2. POST 서버에 데이터를 제출하기 위..
타임리프(Timeleaf)
·
Spring Boot
타임리프(Timeleaf)는 서버 사이드 java 템플릿 엔진으로, 웹 애플리케이션 개발에서 동적인 HTML, XML, JSON 등의 문서를생성하는데 사용된다. 타임리프의 특징 자바와 자연스러운 통합 : 자바 코드와 웹 템플릿을 쉽게 통합할 수 있다. 심플하고 직관적인 문법 : 간결하고 읽기 쉬운 템플릿 문법을 제공한다. 다양한 템플릿 기능 : 조건문, 반복문, 변수 선언, 템플릿 상속 등 다양한 기능을 제공한다. 템플릿 캐싱 : 템플릿의 변동 없이 재사용 가능한 캐시를 생성하여 성능을 향상시킨다. 타임리프의 문법 변수 표현식 : ' ${변수명} ' 형태로 변수를 템플릿에 표현할 수 있다. OGNL(객체 그래프 탐색 언어) 표현식 : ' *{표현식} ' 형태로 객체의 속성에 접근하고 출력할 수 있다. 조..
MVC 2
·
Spring Boot
Spring 에서 쓰는 MVC는 주로 MVC 모델2 구조로 개발이 진행된다. 저번에 MVC 패턴에 대해서 배워봤다. (링크) Model : Date를 처리하는 영역 View : 화면을 보여주는 영역 Controller : 요청을 처리하는 영역 (View와 Model의 터미널) 그러면 MVC 2는 무엇이 다를까? 왜 이것을 스프링에서 추구하는 것 일까 ? 화면을 담당하는 View와 Data를 처리하는 비즈니스 로직을 분리하는 목적이 있다. 다시 말해 이로 인해 프론트엔드와 백엔드와의 구분 점이 명확하게 생긴 것이다. 작업이 분리되어 서로 로직들이 섞일 일도 많이 줄어든다고 한다. 클라이언트가 View에서 요청을 보내면 즉, 요청이 들어오게 되면 Controller가 요청을 받고 요청에 해당하는 Model을..
Spring 의존성 주입
·
Spring Boot
Restaurant 에 요리사 없으면 안되니, Restaurant → Chef에게 의존한다. 코딩은 컴퓨터 없이 안된다. 코딩 → 컴퓨터 Restaurant에 Chef 객체가 필요함 Chef chef = new Chef( ); Coding에 Computer 객체가 필요함 Computer com = new Computer( ); 의존성이 매우 딴딴해 유연한 개발이 힘들다. 그래서 우리는 Spring에게 요청한다. 이제 Spring이 Computer를 알게끔 인식을 해줘야한다. 어노테이션을 해줘야 한다. @Component // 해당 객체를 Spring에서 관리하도록 설정 @Autowired // 필드 주입(방법1) private Computer computer; @Autowired // 굉장히 편하게 주입..
JAVA Spring 프레임워크 란?
·
Spring Boot
프레임워크를 알아보기 전에 알아두면 좋을 것 들(필요지식 : JAVA, JSP) 우리는 예전부터 프레임워크를 사용하고 있었다. JAVA = Collection framework JSP = Mybatis(JAVA 랑 DB랑 연결해주는 친구) (흔히 프레임워크랑 라이브러리와 혼동하는 사람들이 있다) 프레임워크랑 라이브러리의 차이점을 알아야 한다. 프레임 = 틀 워크 = 작업 라이브러리 ? = 둘 다 선배 개발자 분들이 만들어 놓은 것 이다. 그럼 뭐가 다를까 ? 쉽게 설명하면 라이브러리들이 덩치가 커지면 프레임워크가 된다. 그렇다면 덩치가 커진다는 기준이 뭘까 ? 우리가 자동차 공장의 사장이라고 생각하자 기술자 3명을 뽑았다. 3명에게 자동차 설계도를 준다. 이사람들에게 자동차 설계도를 주고 "이거랑 똑같이..