전체 글 30

SQL 테스트 (2)

샘플 데이터가 없어서 쿼리문만 작성1. SELECT / WHERE / AND / OR> 이름이 john 이거나 급여가 4000 이상인 직원 조회하기.> employees 테이블에서 first_name이 john이거나 salary가 4000 이상인 직원들의 first_name, last_name, salary 조회.SELECT first_name, last_name, salary FROM employees WHERE first_name = 'John' OR salary >= 4000;> 특정 연도에 입사한 직원 조회하기.> employees 테이블에서 hird_date가 2010년에 해당하는 직원들의 first_name, last_name, hire_date 조회.SELECT first_name, las..

코딩 테스트 2024.12.30

SQL 테스트 (1)

sample데이터가 없어서 쿼리문 작성만... 1. SELECT> EMPLOYEES 테이블에서 first_name, last_name, hire_date 컬럼을 조회하기.SELECT first_name, last_name, hire_date FORM employees;2. 조건절(WHERE)> 급여가 5000 이상인 직원 조회> employees 테이블에서 salary가 5000 이상인 직원들의 first_name, last_name, salary 조회하기.SELECT first_name, last_name, salary FROM employees WHERE salary >= 5000;2-1. 특정 날짜 이후 입사한 직원 조회> employees 테이블에서 hire_date가 2015.01.01 이후..

코딩 테스트 2024.12.30

배열 및 문자열

1. 배열의 합 계산(정수 배열이 주어졌을 때 배열의 모든 요소의 합을 구하기)입력 : [1, 2, 3, 4, 5]출력 : 15테스트package Test;import java.util.Arrays;public class Main { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5}; System.out.println(Arrays.toString(arr) + " 배열의 합 : " + arraySum(arr)); } public static int arraySum(int[] arr) { int sum = 0; for(int num : arr) { // 배열을 하나씩 꺼내서 num에 저장 sum += num; } ret..

코딩 테스트 2024.12.30

기본 알고리즘

1. 팰린드롬 문자열 확인하기(입력의 문자열이 팰린드롬인지 확인하기)입력 : "madam"출력 : true입력 : "hello"출력 : false테스트package Test;public class Palindrome { public static void main(String[] args) { String input = "madam"; boolean isPalindrome = checkPalindrome(input); System.out.println("'" + input + "'은(는) 펠린드 문자열인지 : " + isPalindrome); } public static boolean checkPalindrome(String str) { if(str == null || str.isEmpty()) ..

코딩 테스트 2024.12.30

WebSocket 공부하기

WebSocket???WebSocket은 클라이언트와 서버간의 양방향 통신을 실시간으로 지원하는 프로토콜이다. HTTP와 달리 WebSocket은 연결이 한 번만 설정해도 지속적으로 유지되며, 클라이언트와 서버가 데이터를 자유롭게 주고받을 수 있다.>> 채팅 애플리케이션, 실시간 알림 시스템 등으로 사용 가능. 양방향 통신 : 클라이언트와 서버가 데이터를 동시에 주고받을 수 있음.연결 지속성 : 연결이 생성된 후 별도 요청 없이 데이터 전송이 가능.효율성 : HTTP처럼 요청-응답 구조를 반복하지 않아 네트워크를 대역폭 절약할 수 있음.이런 특성 덕분에 WebSocket은 채팅 애플리케이션, 실시간 알림 시스템, 게임 등에서 많이 사용됩니다. 1. 의존성 주입(pom.xml) 2. Websocket 핸들..

개인 공부 2024.12.29

JWT를 사용한 Spring Security 기반 인증 시스템 구현

Spring Security를 공부하면서 검색 할 때마다 JWT인증이라는 글도 관련해서 자주 보여서 이번 글에서는 JWT에대해서 공부를 해보려고 합니다..    =) JWT...?JWT(JSON Web Token)는 웹 애플리케이션에서 사용자 인증 및 권한 부여를 위한 토큰 기반 인증 시스템으로 서버에 세션 정보를 저장하지 않고, 클라이언트가 자체적으로 인증 정보를 저장해서 서버의 부하를 줄이고, 확장성을 높일 수 있는 장점이 있다.Stateless : 서버에서 상태를 유지할 필요가 없어 확장성이 높은 시스템 구현이 가능하다.자체 정보 저장 : JWT에 사용자 정보나 권한 정보를 포함시킬 수 있어서 추가적인 데이터베이스 조회가 필요없다.간편한 관리 : 토큰을 클라이언트에서 관리해 서버 측에서는 세션을 저..

개인 공부 2024.12.27

Spring Security를 활용한 사용자 권한 기반 접근 제어

저번 글의 Spring Security를 활용한 로그인 이후로 이번에는 관리자 페이지를 구현하면서 Role에 따라 접근 가능한 페이지/기능을 제어하는 방법을 공부하고 기록해 보려고 합니다.. 오류만 안난다면.... 금방 끝나겠지!? +++ 이전 게시글에서 수정 +++MemberController에서 "/main" 매핑을 삭제, MainController 생성package com.demo.controller;import org.springframework.security.core.Authentication;import org.springframework.security.core.context.SecurityContextHolder;import org.springframework.stereotype.Cont..

개인 공부 2024.12.24

Spring Security를 활용한 로그인!?!?

예전에 한 회사에서 면접을 볼 때 "Spring Security 사용해 본 적이 있나요?" 라고 했을 때 없다고 했었는데 개인 공부를 하면서 웹 개발 중 제일 처음 배웠던 로그인 기능을 Spring Security에 대해서 공부도 할 겸 활용해 보겠습니다..(그 때, 사용한 적 없다고 했지만 어떤 기능인지 알고 잘 대답했더라면 합격 했을 수도 있었을 것 같네....) Spring Security???Spring 기반 애플리케이션에서 인증(Authentication)과 권한 부여(Authorization)를 처리하는 강력한 보안 프레임워크.ㅇㅐ플리케이션을 외부 공격으로부터 보호하고, 사용자의 접근 권한을 제어하는데 필요한 다양한 기능을 제공합니다. Spring Security의 주요 기능인증(Authent..

개인 공부 2024.12.21

MVC 패턴이 뭔데...

SpringBoot를 통한 프로젝트를 하다보니 내가 제대로 이게 어떤 기능이고, 어떻게 사용하는지에 대한 설명을 제대로 하지 못하는 모습을 보고 혼자 공부도 하고, 면접 준비를 위한 글입니다요.... 초보 개발자로 살아남기가 많이 힘드네요 ㅠ_ㅠ MVC가 뭔데...  Model-View-Controller 랍니다!!! 이건 기본이겠죠..? 아무튼 이렇게 나눠서 구현하는 디자인 패턴이랍니다. application의 구성 요소를 분리하여 관리하기 쉽고, 코드의 유지보수성을 높이는데 도움을 준다는데.. 말이 너무 어렵네요. Model : 애플리케이션의 데이터와 비지니스 로직을 처리하며, DB(데이터베이스)와 상호작용을 하거나, 로직을 수행하는 역할.View : 사용자에게 데이터를 시각적으로 표현. Html, ..

개인 공부 2024.12.18

Spring Boot - 국립 도서관 Open API를 활용한 도서 검색 구현

이번 글에서는 국립 도서관의 Open API를 활용하여 도서 검색 및 결과를 웹 페이지에 나타내는 방법을 소개해 볼게요. 부족한 실력 탓에 설명이 미흡합니다... 이해해주세요 :) *** 지난번 글에서 api의 key에 대한 설명이 없었던 것 같아서 여기에 작성해 볼게요 ***저는 api key를 application.properties에 따로 저장해서 사용했습니다. library.api.key : 국립 중앙 도서관의 api key.aladin.api.key : 알라딘 api key (이건 여기서 사용하지 않아서 필요 없어요!!!) ItemDTO (저번과 똑같아요 수정할 필요 없습니다..)package com.demo.dto;import com.fasterxml.jackson.annotation.Json..