반응형

Cors 허용 설정하는 방법은 크게 2가지가 있습니다.

1) 어노테이션을 이용하는 방법

2) WebMvcConfigurer 인터페이스를 이용하여 Global로 적용하는 방법

그중에서도 저는 2) 방법을 사용하였습니다.

main 클래스가 있는 패키지 하위에 WebConfig 클래스 생성을 합니다.

1) 어노테이션을 이용하는 방법

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@CrossOrigin(origins = "*", allowedHeaders = "*")
public class TestController {
	
	@CrossOrigin(origins = "*", allowedHeaders = "*")
	@GetMapping("/public-key")
	public void getPublicKey(HttpServletRequest req) {
		HttpSession session = req.getSession();
		System.out.println(session.getId());
	}
	
	@CrossOrigin(origins = "*", allowedHeaders = "*")
	@PostMapping("/auth")
	public void auth(HttpServletRequest req) {
		HttpSession session = req.getSession();
		System.out.println(session.getId());
	}

}

 2) WebMvcConfigurer 인터페이스를 이용하여 Global로 적용하는 방법

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {

	@Override
	public void addCorsMappings(CorsRegistry registry) {
		registry.addMapping("/**").allowedOrigins("*");
	}

}

 

https://github.com/jshag90/TIL/blob/master/Spring/210517%20-%20Spring%20Boot%EC%97%90%EC%84%9C%20Cors%20%EC%84%A4%EC%A0%95%20%EC%A0%84%EC%97%AD%20%EB%B3%80%EC%88%98%EB%A1%9C%20%ED%95%98%EA%B8%B0.md

 

jshag90/TIL

TodayILearnd. Contribute to jshag90/TIL development by creating an account on GitHub.

github.com

 

728x90
반응형

 

programmers.co.kr/learn/courses/30/lessons/42587

 

코딩테스트 연습 - 프린터

일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린

programmers.co.kr

퇴근후 시간 날때마다 풀었습니다. 

가능하면 답을 안보고 풀기위해서 노력했습니다.

제일 중요한 것은 `문제를 완벽히 이해하는 것이다`라는 것을 깨달았습니다. 

문제의 의도를 파악하지 못해 계속 통과를 5일째 못하다가 아이패드에 그림을 그려가면서 이해하다보니

제가 놓친부분을 발견하고 결국 풀게되었습니다.(아이패드짱_구글 Jamboard짱)

package com.ji.study;

import static org.junit.Assert.assertEquals;

import java.util.ArrayList;
import java.util.List;

import org.junit.jupiter.api.Test;

public class PrinterTest {

	@Test
	void test() {

		Printer test = new Printer();

		assertEquals(5, test.solution(new int[] { 1, 1, 9, 1, 1, 1 }, 0));
		assertEquals(1, test.solution(new int[] { 2, 1, 3, 2 }, 2));
		assertEquals(6, test.solution(new int[] { 2,2,2,1,3,4 }, 3));

	}

}
package com.ji.study;

import java.util.ArrayList;
import java.util.List;

public class Printer {

	public static void main(String[] args) {

		int[] priori = { 1, 1, 9, 1, 1, 1 };
		int location = 0;
		System.out.println("result : " + solution(priori, location));

	}

	public static int solution(int[] priorities, int location) {
		int answer = 0;

		List<int[]> list = new ArrayList<int[]>();
		for (int i = 0; i < priorities.length; i++) {
			list.add(new int[] {i, priorities[i]});
		}

		List<int[]> result = getCompareNum(list);
		for (int j = 0; j < result.size(); j++) {
			if (result.get(j)[0] == location)
				answer = j;
		}

		return answer + 1;
	}

	public static List<int[]> getCompareNum(List<int[]> list) {

		for (int i = 0; i < list.size() - 1; i++) {
			for (int k = i + 1; k < list.size(); k++) {
				// 중요도가 높은 인쇄물이 있을 경우
				if (list.get(i)[1] < list.get(k)[1]) {
					return getCompareNum(shiftLastIndex(list, i));
				}
			}
		}
		
		return list;
		
	}

	// 가장 앞에 있는 대기 목록을 뒤로 이동
	public static List<int[]> shiftLastIndex(List<int[]> list, int moveIndex) {
		list.add(list.get(moveIndex));
		list.remove(moveIndex);
		return list;
	}

}

 

아이패드로 작성한 풀이

728x90

'[개발관련] > 코테준비' 카테고리의 다른 글

[프로그래머스] [1차] 캐시  (0) 2021.06.13
동적계획법(Dynamic Programming)  (0) 2021.06.13
[백준] DFS와 BFS  (0) 2021.05.01
[프로그래머스] 주식 가격  (0) 2021.04.29
[프로그래머스] 타겟 넘버  (0) 2021.04.25
반응형

무음 카메라 활용은 개인이 합법적으로 촬영할때만 사용해야함 유의! 

무료 어플 2개 추천 

1) "Microsoft Pix" 

설정에서 셔터사운드 무음으로 변경 하면 끝!
아이폰의 표준카메라의 동일한 해상도로 무음 촬영가능
무료인데 광고 없음


2) "Foodie" 어플

음식 맛있게 보여주는 필터 어플- 기본이 무음 촬영으로 유용함

장점

- 필터 및 스티커 등 사진 꾸미기 용이

- 무음 촬영 가능

 

단점

- 앱 스토어를 이용한 추가 설치

- 소리를 들으면서 실행시 소리가 잠시 끊김

- '원본사진 저장' 설정을 사용하면, 필터를 사용하지 않아도 반드시 2장이 저장됨

728x90

+ Recent posts