목록전체 글 (81)
개발 공부 기록
본 포스팅은 [이것이 자바다]를 참고하여 작성하였습니다. . . . ☑️ 예외란? 예외는 사용자의 잘못된 조작 혹은 개발자의 잘못된 코딩으로 발생하는 프로그램 오류를 말합니다. 우리는 예외가 발생하면 예외 처리를 통해 프로그램을 곧바로 종료시키지 않고 정상적으로 실행되도록 할 수 있습니다. 예외에는 Exception(일반 예외)과 RuntimeException(실행 예외)이 있습니다. Exception은 컴파일러 체크 예외로 불리기도 하며, 예외 처리 코드가 없다면 컴파일 오류가 발생하게 됩니다. 반면 RuntimeException은 컴파일 과정에서 예외 처리 코드를 검사하지 않습니다. 이 둘은 컴파일 시 예외 처리를 확인하는데 있어선 차이가 있지만, 결국 둘 모두 예외 처리가 필요합니다. JVM은 프로..
Question https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5P0-h6Ak4DFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 💡 Solution 파스칼의 삼각형 그림만 보고 풀어도 잘 풀리는 문제였습니다. 양끝이 모두 1이란 걸 먼저 파악한 후 문제를 풀었습니다. 💻 Code import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class SWEA2005 { public static..
Question https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5P1kNKAl8DFAUq& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 💡 Solution 아래 코드에서 i는 가능한 마디의 길이입니다. 문제에서 제시한 바에 따르면, 각 문자열의 길이는 30이고 i의 범위는 1부터 10입니다. 이때 반복문 범위를 for(int i = 1; i < s.length() / 2; i++)라고 한 이유는, 가능한 마디의 길이는 문자열의 절반을 넘어갈 수 없기 때문입니다. 문자열의 처음부터 i - 1 까지, i부터 (i * ..
Question https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PTeo6AHUDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 💡 Solution 입력받는 수 N 범위 안에서 3, 6, 9가 들어있는 숫자를 파악할 수 있다면 풀기 쉬운 문제입니다. 두 번째 코드는 다른 사람들의 코드를 둘러보다 문자열 타입으로 변환시켜 contains() 메소드를 통해 3, 6, 9의 위치를 비교적 간단히 찾는 사례가 있어 다시 한 번 풀어보았습니다. 💻 Code 1. 처음 작성한 코드 import java.io.Buffer..
Question https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5LrsUaDxcDFAXc SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 💡 Solution 가장 먼저 든 생각은 배열에서 최댓값을 찾아 '최댓값 - 그 전에 있는 값'을 누적하여 결과를 도출하려 했습니다. 이때 뒤에서부터 최댓값을 찾으면 더 효율적으로 답을 찾을 수 있습니다. 이때 조심해야할 부분은 N의 최댓값 1,000,000(10^6)이고 각각의 매매가의 최댓값은 10,000(10^4)이므로, 만일 N이 10^6이고 모든 날의 매매가가 10^4이라면..

마지막 블로그 쓴 게 벌써 2주 가까이 되었습니다 하하 보는 사람은 없지만 ... 저는 반년만에 본가에 가서 추석 연휴를 아주 알차게 보내고 왔습니다. 오랜만에 가족들이랑 오래 시간도 보내고 아시안 게임도 보고 .. 🐷가 되고 왔답니다 사실 10월 7일에 정보처리기사 실기 시험이 있어서 마음 편히 놀지는 못했습니다. 머릿속으로는 문제 풀어야하는데 .. 용어 .. 외울 거 많던데 .. 하면서 반년동안 만나지 못했던 본가 친구들 만나기 바빴습니다 헤헤 그래도 하루에 모의고사 2 ~ 3개씩은 꼭 풀고 잤어용 그리고 !! 서울에서 항상 하던 운동을 본가와서 거의 일주일 동안 한 번도 안 했습니다✌️ 항상 하던 운동을 안 해서 그런가 몸이 추욱 처지더라구요 하지만 끝까지 안 했습니다 푸하하 서울 가서 다시 열심히..

✔️ Spring Security 적용하기 1. Spring Security 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-security' build.gradle에 위와 같이 dependency를 추가합니다. 2. Spring Security 구성 클래스 생성 Spring Security를 구성하기 위한 SecurityConfig 클래스를 만들어 보안 규칙 및 사용자 인증에 대한 설정을 정의합니다. 이 클래스는 '@Configuration' 어노테이션을 사용하여 설정할 수 있습니다. (3.x 버전의 스프링부트에서 WebSecurityConfigurerAdapter가 사라졌다고 합니다.) @Configuration @EnableW..

✔️ Spring Security Spring Security는 Spring Framework 기반의 애플리케이션의 보안(인증, 권한, 인가 등)을 구현하는 데 사용되는 보안 프레임워크입니다. 이를 사용하면 애플리케이션에서의 인증 및 권한 부여 관련 작업을 쉽게 처리할 수 있습니다. Spring Security의 주요 기능들은 아래와 같습니다. 1. Authentication(인증) 인증은 즉 '증명하는 것'으로, 사용자가 시스템에 로그인하는 방법을 다룹니다. 예를 들어, 사용자의 아이디와 패스워드를 사용하여 인증을 수행하거나, OAuth와 같은 다양한 인증 메커니즘을 지원합니다. 2. Authorization(인가, 권한 부여) 인증된 사용자에게 어떠한 작업을 수행할 수 있는지, 즉 권한을 부여하여 특..
- 비트마스크(Bit mask)란? 비트마스크란 비트(bit) 단위로 데이터를 조작하고 검사하는 방법입니다. 주로 특정 비트 위치에 Flag를 설정하거나 상태를 나타내는데 사용되며, 이러한 Flag를 검사하여 코드 동작을 제어하거나 데이터를 표현할 수 있습니다. 비트 마스크는 비트 단위 연산을 사용하여 만들거나 조작할 수 있습니다. 비트마스크의 장점은 아래와 같습니다. 비트 연산인 만큼 메모리를 효율적으로 사용 가능하며 수행 시간이 빠릅니다. Dynamic Programming이나 순열 등 일반적인 배열만으로 해결하기 어려운 문제에 유용합니다. 집합을 배열의 인덱스로 표현이 가능합니다. 각 비트는 집합의 요소를 나타내며, 해당 비트가 1이면 해당 요소가 집합에 속하는 것으로 간주됩니다. 비트 마스크는 주..
https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net Question 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. Input 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. Output 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 💡 Solution 우리는 연산 횟수를 최소화하면서 1..