본문 바로가기

WebApplication

(14)
네이버 api 연동 postMan 테스트 방법_총 정리(+인증 토큰) 네이버 api연동을 postMan으로 테스트 하기 위해서는 인증방식에 따른 인증 토큰을 Authorization에 담아 요청을 보내야 하는데 내가 사용하려고 했던 '상품 목록 조회' api 의 실제 테스트 과정으로 방법을 정리해보았다. 위의 네이버 api를 사용하기 위해서는 캡처 이미지 내에 하이라이트 표기된 Client-Credentials 방식의 Authorizations(인증)을 통한 access token 을 발급해야 한다. 발급받은 토큰은 '상품 목록 조회' 에 대한 api 요청을 보낼 때 header 에 담아서 함께 보내야 api를 사용할 수 있다. 아래 화살표시를 누르면 Client-Credentials 방식으로Authorizations 인증 토큰을 발급하는 api(인증토큰을 발급하는 별도의..
Spring Framework_MVC 스프링 프레임워크는 웹 애플리케이션 개발에 필요한 여러 기능을 미리 만들어 제공함 그 기능중 하나가 'MVC' MVC의 특징 모델2 아키텍처를 지원 , 스프링과 다른 모듈의 연계가 쉬움, 타일즈같은 View기술(화면관련 프레임워크)와 연계가 쉬움 스프링프레임워크 MVC 구성요소 DispatcherServlet : 클라이언트 요청을 받고 해당 요청에 대한 컨트롤러를 선택하여 요청을 전달함. 또한 컨트롤러의 응답값을 View에 전달 + Dispatcher(= 보내는자)Servlet (= Servlet을 보내는자) HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 Front Controller + Front Controller 는 주로 서블릿 컨테이너의 제일 앞에서 서버로 ..
관점 지향 프로그래밍 AOP(Aspect Oriented Programming) AOP 메서드 안의 주기능과 보조기능을 분리한 후 선택적으로 메서드에 적용해서 사용한다는 개념 AOP를 사용하면 전체 코드에 흩어져 있는 보조 기능을 공통으로 묶어 관리할 수 있고, 설정을 통해 이러한 보조 기능을 특정 메서드나 클래스에 적용할 수 있음 ex) 주요 기능(회원/상품/주문관리 등)은 아니지만 보안/ 로깅/ 트랜잭션 처리 와 같이 모든 기능에 공통으로 필요로 하는 작업을 AOP로 처리함 스프링에서의 AOP 기능 관련 용어 정리 - aspect : 구현하고자 하는 보조 기능 - advice : aspect의 실제 구현체(class)를 의미하며 메서드 호출을 기준으로 여러 joinpoint에서 실행 - joinpoint : advice를 적용하는 지점으로 스프링에서는 메서드 결합점만 제공 - p..
Spring 의존성 주입(DI) / 제어의 역전(IOC ) DI(의존성주입) : 객체에 대한 관리와 의존 관계를 개발자가 직접 코드로 작성하여 설정하는 것이 아니라, XML이나 어노테이션을 이용해 객체를 주입하고 객체들간의 의존 관계를 맺어주어 결합도를 낮춤 (스프링이 객체를 제어하도록 함 : IOC) > DI로 IOC 기능을 구현하므로 DI라는 용어를 주로 사용 public class BoardServiceImpl implements BoardService { private BoardDAOImpl dao; public BoardServiceImpl(BoardDAOImpl dao) { this.dao = dao; } } // 객체 생성 시점에 생성자 호출시, 외부에서 (파라미터로)주입받는 객체로 클래스 멤버변수를 초기화 함 > 스프링에서 생성자를 통한 객체 주입..
[Spring] 스프링 MVC 트랜잭션(Transaction) 관리 트랜잭션(쪼개질 수 없는 하나의 작업 단위) >> ACID원칙(모두 참이어야 참)이라는 특성을 가지고 있다. 원자성(Atomicity) :: 하나의 트랜잭션 안에 A와 B라는 모듈이 구성되어 있다고 했을 때 A만 성공하고 B는 실패했다면 전체의 작업이 원래 상태로 돌아가야 한다. ex) rollback 일관성 (Consistency) :: 트랜잭션이 성공했다면 데이터베이스의 모든 데이터는 일관성을 유지해야만 한다. 트랜잭션으로 처리된 데이터와 일반 데이터 사이에는 전현 차이가 없어야 한다. 격리 (Isolation) :: 트랜잭션으로 처리되는 중간에 외부에서의 간섭은 없어야 한다. (단계가 있음) 영속성 (Durability) :: 트랜잭션이 성공적으로 처리되면 그 결과는 영속적으로 보관되어야 한다. e..
[Spring] AOP 설정 및 Advice 적용(Pointcut > Before Advice) AOP (관점지향 프로그래밍) :: 기존의 코드를 수정하지 않고 원하는 기능의 관심사를 Target 객체의 JoinPoint(결합점)로 호출하여 결합하는 패러다임 :: 핵심로직은 아니지만 프로그래밍에 필요한 주변 로직을 관심사별로 분류하는 것이다. 관심사와 핵심 비즈니스 로직을 분리해서 별도의 코드로 작성하고 실행/컴파일 시 이를 결합하는 방식이다. Advice 구분 (Pointcut) - Before Advice :: Target의 JoinPoint 메서드를 호출하기 전에 실행되는 코드 - After Returning Advice :: 모든 실행이 정상적으로 이루어진 이후에 동작하는 코드 - After Throwing Advice :: 예외가 발생한 뒤에 동작하는 코드 - After Advice :: ..
[Spring] REST방식의 데이터 전송(@ResponseBody) 서버의 역할은 점점 더 순수 데이터에 대한 처리를 목적으로 하는 형태로 바뀌고 있다 . REST 방식이란 Repersentational State Transfer의 약자로 하나의 URI는 하나의 고유 리소스를 대표하도록 설계된다는 개념에 전송방식을 결합하여 요청에 응답한다. 즉 리소스를 이름으로 구분하고 전송 방식을 명기하는 클라이언트와 서버의 데이터 송수신 방법이다. ** URI 는 리소스의 식별자이고 URL은 이의 하위 개념이라고 생각하면 된다 . URI의 I는 database의 pk와 같은 고유 식별 경로가 포함된 형태의 주소이다. REST 전송방식 종류:: GET(create) / POST(read) / PUT, PATCH(update) / DELETE(delete) 스프링에서는 @Resepons..
[Spring] Controller 에 지정된 JSP를 이용한 화면처리 database 연동과 mapper , 컨트롤러 테스트가 완료되었다면 실제 화면에서 로직수행이 완료된 형태의 데이터가 적절히 보여지는지 화면에 대한 테스트가 필요하다. 기존에 진행했던 팀프로젝트나 게시판 사이트프로젝트에서는 bootstrap5를 사용하였지만 현재 진행하고 있는 회원/매출 사이트는 jsp와 javaScript 만을 활용하여 스터디하고 있다. jsp작업 전 화면 전체의 레이아웃을 구상할때는 데모 사이트를 참고해도 좋고 평소 ui가 깔끔하다고 생각했던 사이트를 참고하여 비슷하게 작업해보며 진행하였다. 레이아웃 같은 경우도 비즈니스 로직보다는 중요도가 낮다고 생각할 수 있지만 화면도 처음부터 의도한대로 잘 설계하고 시작하는 것이 경험상 효율적이었다. **이번 게시판 사이트 프로젝트를 마치면 bo..