분류 전체보기 112

[Spring] 스프링부트 REST API 관련 Annotation

REST란?REpresentational State Transfer웹에서 컴퓨터 간 표준을 제공하는 아키텍처 스타일로 6가지 특징이 있다. 1. 균일한 인터페이스2. 클라이언트-서버 분리3. 무상태4. 캐시 가능성5. 계층화된 시스템 아키텍처6. 코드 온디맨드 즉, RESTful한 설계란, 클라이언트와 서버가 서로 독립적이며 서로에게 영향을 주지 않아야 한다.또한 각 요청에 필요한 정보를 포함하여 무상태성을 유지해야 한다.이러한 원칙에 따라 설계한 API가 REST API이다. REST의 구성 요소에는 자원(resource), HTTP 메서드, 표현(representation)이 있다.- 자원 : URI (Uniform Resource Identifier)로 경로를 구분한다.- HTTP 메서드 : CRU..

BackEnd/Java 2024.11.04

[Spring] 스프링 의존성 주입 Dependency Injection 총정리

의존성 주입이란? 프로그램 디자인이 결합도를 느슨하게 되도록하고 의존관계 역전 원칙과 단일 책임 원칙을 따르도록 클라이언트의 생성에 대한 의존성을 클라이언트의 행위로부터 분리하는 것- 위키 백과 즉, 다른 클래스의 기능을 사용하기 위해 생성자를 직접 호출하는 대신컨테이너를 통해 연관 관계를 규정하여 결합을 약하게 하는 것!클래스들 간의 연관 관계를 갖지 않도록, 서로가 영향을 주지 않도록 하는 것이다. 만약 의존성 주입을 하지 않은 코드의 경우에는클래스끼리 서로 연관관계가 있어 하나의 클래스를 수정했을 때그와 연관이 있는 다른 클래스에서도 수정이 일어나야 한다. 이러한 문제를 해결하기 위해서는 인터페이스를 적용하여각 클래스를 구현하고 객체를 사용할 때 인터페이스로 타입을 선언할 수 있지만여전히 일부 클래..

BackEnd/Spring 2024.10.11

[백준/Java] 2933번 미네랄

1. 문제 이 문제는 그래프 탐색을 기반으로 한 구현문제이다.동굴의 미네랄을 파괴하며 클러스터가 분리되면새롭게 생성된 클러스터를 아래로 떨어뜨리는 문제이다. 2. 풀이 문제를 이해하기 위해서 해야 하는 일을 순서대로 정리해보았다. 1. 동굴 입력 받기2. 높이와 막대 던지는 방향 확인해서 미네랄 파괴하기3. 파괴된 미네랄 주변 클러스터 분리 여부 확인하기4. 분리된 클러스터를 아래로 떨어뜨리기5. 2 ~ 4번 반복하기6. 최종 미네랄 모양 출력하기 1. 동굴 입력 받기동굴을 char[][] 배열로 입력 받는다.'x'는 미네랄이고 '.'은  빈 공간이다. 2. 높이와 막대 던지는 방향 확인해서 미네랄 파괴하기가장 아래가 1층이므로 높이 h가 주어졌을 때 r - h로 해당 층 좌표를 구할 수 있다.던지는 방..

[Java / 백준] 1000번 A+B, Scanner로 입력 받기, 파이썬과 자바의 입력 비교하기

쏘 심플한 오늘의 문제..파이썬으로 첫 문제를 풀었던 이 문제로 자바 알고리즘을 시작했다.입력 받기부터 어려워서 개념을 정리해보기로! 풀이Scanner를 사용해서 두 수를 받아주고두 수를 더한 값을 출력하면 된다. 코드import java.util.*;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a, b; a = sc.nextInt(); b = sc.nextInt(); System.out.println(a+b); }} 자바 Scanner자바의 스캐너는 java.util패키지 안에서 찾을 수 있는 클래스로메서드를 사용해서 Boolean, ..

BackEnd/Java 2024.07.09

[Java] 파이썬 => 자바, 자바 알고리즘 풀이 시작

그동안 백준을 풀 때 파이썬만 사용해오다가처음으로 자바를 사용해서 문제를 풀기 시작했다.가장 기본 문제(?)인 1000번 A+B 문제이다.파이썬으로 풀 때는 코드길이와 시간이 상대적으로 짧은 반면에자바로 풀었을 때는 코드길이와 시간이 현저히 높음을 확인할 수 있다.물론 메모리에 있어서는 자바가 승리..!하지만 그동안 메모리가 부족해서 못 푼 문제 보다는 시간의 문제로해결하지 못한 문제들이 더 많았어서... 이번에 자바로 문제를 풀기 시작한 이유는 크게 두 가지다.1. 싸피에서 자바반에 입과했기 때문!2. 언젠가 코딩테스트에서 파이썬이 금지되는 경우가 있을까봐 그렇지만 벌써부터 쉽지 않다...기본 문제를 풀려고 해도 몇 개의 메서드를 import 해야하는 건지... 나와 같은 시행착오를 겪을 사람들을 위해..

BackEnd/Java 2024.07.09

[SSAFY 12기] 싸피 12기 최종 합격, 비전공자 에세이부터 면접까지

- 2024년 4월 22일(월) ~ 5월 7일(화) 17시 : 지원서 접수- 2024년 5월 8일(수) ~ 5월 18일(토) : 에세이 제출- 2024년 5월 11일(토) 10시, 13시, 16시 SW적성진단(비전공자)- 2024년 5월 19일(일) 11시, 15시 코딩테스트(전공자)- 2024년 5월 28일(화) 15시 인터뷰 대상 발표- 2024년 6월 5일(수), 7일(금) 인터뷰(전공자)- 2024년 6월 10일(월) ~ 12일(수) 인터뷰(비전공자)- 2024년 6월 19일 15시 최종 합격 발표  지원서 접수부터 SW 적성진단은 이전 게시물에.... https://jemarque.tistory.com/entry/SSAFY-12%EA%B8%B0-%EC%8B%B8%ED%94%BC-12%EA%B8%..

Programming/SSAFY 2024.06.20

[CSS] CSS 변수와 SCSS 변수의 차이 (사용자 지정 속성)

CSS에서 사용자 지정 속성(CSS 변수)를 정의할 때는 전용 표기법이 있다.이 표기법은 SCSS와 CSS에서 사용하는 방법이 다르다. 1. 언제 사용하는가?복잡한 웹사이트에서 많은 값을 반복적으로 사용할 때,예를 들어 어떤 특정 색상을 반복적으로 사용할 때혹시 그 색상을 바꿔야하는 일이 생길 경우한 영역에 값을 저장해놓고 참조를 통해 값을 사용하는 것이 좋다. 2. CSS 변수:root { --main-bg-color: brown;}element { background-color: var(--main-bg-color);} root 위치에 선언할 경우 HTML 문서 어디에서나 사용자 지정 속성에 접근할 수 있다.이렇게 선언한 변수를 사용할 때는 var() 함수를 지정하고 매개변수로 사용자 지정 속성의..

FrontEnd/HTML&CSS 2024.06.20

[백준/python] 1074번 Z

1. 문제 이 문제는 배열을 한 변의 길이가 2 ** n인 배열을 Z 모양으로 탐색하며r행 c열을 몇 번째로 방문하는지 출력하는 프로그램이다.r과 c, 그리고 순서 모두 0부터 시작한다. 2. 풀이재귀적으로 접근하기! 4등분을 반복한다!1. 만약 size가 1이 될 경우 ans는 start로 초기화한다.2. size가 2 이상인 경우 배열을 4등분하여 r과 c가 어디에 위치하는지 확인한다.3. 해당 사분면에 대해서 r과 c의 값을 갱신하고 해당 조각의 가장 왼쪽 위가 몇 번째인지를 구한다.4. 위와 같은 방법으로 find 함수를 반복한 뒤 ans를 출력한다. 3. 코드import sysinput = sys.stdin.readlinedef find(start, size, r, c): global an..

[백준/python] 1927번 최소 힙 - heapq 기능 정리

1. 문제우선순위 큐, 힙큐를 활용하여 풀어야 하는 문제. 2. 풀이heapq의 기본적인 동작, heappush와 heappop만 활용하면 되는 문제이다. - heapq.heappush(배열 이름, 원소)- heapq.heappop(배열 이름) 이 두 가지만 알면 이 문제를 쉽게 풀 수 있다.단, 평소에 사용하던 기본 리스트나 deque의 사용법과는 좀 달라서 주의가 필요하다. 3. 코드import heapqimport sysinput = sys.stdin.readlinen = int(input())arr = []for i in range(n): x = int(input()) if x == 0: if len(arr): print(heapq.heappop(arr)..

[백준/python] 18110번 solved.ac

1. 문제이 문제는 주어진 문제의 난이도를 절사평균으로 구하는 문제다.위아래 15%를 제외하고 평균을 계산하되, 정수가 아닌 경우 모두 반올림한다. 2. 풀이python의 내장 함수 round는 사사오입이 아니다.우리가 일반적으로 알고 있는 반올림은 사사오입.4 이하는 버리고 5 이상은 올리는 반올림이다.그러나 python의 round는 오사오입이다.5 미만과 5 초과를 기준으로 버림과 내림을 실행한다.5일 경우에는 짝수냐 홀수냐에 따라서 결과가 달라진다.즉, 이 문제에서는 python의 내장함수 round를 사용해서는 안 된다.1. n을 입력 받아서 만약 0명일 경우 난이도 0을 출력한다.2. 일반적인 반올림을 하기 위한 함수를 만든다.3.  score을 입력 받고 절삭할 인원수를 반올림하여 찾는다.4..