분류 전체보기 201

[Spring] Bean의 생명주기

스프링의 객체 생명주기에 대해 작성하고자 한다. 1. "객체의 생명주기"란? : 객체가 메모리에 생성되어 사용된 후 제거되기까지의 전 과정. 2. "Bean"이란?먼저, "Bean"이란, 원래의 자바 프로젝트라면 개발자가 직접 new 연산자를 사용해서 객체를 생성하고 의존 관계를 정립해주어야 하는데, 스프링에서는 스프링 컨테이너가 대신 객체를 생성하고 관리해주는 것을 말한다. 스프링이 내부적으로 new를 통해 객체를 생성하고 필요한 곳에 DI를 해준 뒤 컨테이너에 빈으로 등록되면 해당 객체는 스프링 컨테이너가 관리하게 되며 코드의 결합도를 낮추고, 유지보수성을 높혀준다. 3. Spring Bean의 생명주기 단계1) 해당 클래스의 정보를 빈으로 등록 ( @Component 등의 어노테이션을 통해 스프링..

웹 개발 2025.06.09

[CodeUp] 3130 : 소들의 헤어스타일

[문제] package day093;public class Test01 { public static void main(String[] args) { int N = 6; int[] datas = {10, 3, 7, 3, 12, 2}; int result = 0; // 1. 누적 값을 그대로 사용하여 마지막에 출력까지 하는 방식 // 간편하다. for(int i =0; i [성능 개선 시]import java.util.Stack;public class Test02 { public static void main(String[] args) { int N = 6; int[] datas = {10, 3, 7, 3, 12, 2}; int result = 0; Stack stack = new Sta..

IT/코딩테스트 2025.06.08

너비 우선 탐색과 깊이 우선 탐색

[순서 트리의 노드 스캔 방법 2가지] 1. 너비 우선 탐색(가로형 탐색)낮은 레벨에서 시작해 왼쪽에서 오른쪽 방향으로 따라가다가 한 레벨에서 탐색이 끝나면 다음 레벨로 내려간다.2. 깊이 우선 탐색(세로형 탐색)- 리프에 이를 때까지 아래로 내려가며 탐색. 리프에 도달해 더 이상 탐색할 곳이 없으면 부모에게 돌아갔다가 다시 자식 노드로 내려간다.- 깊이 우선 탐색을 진행하면 노드를 몇 번 지나갔는지 확인할 수 있다.- ‘언제 노드를 방문할지’에 따라 3종류로 구분된다. 1. 전위 순회 : 노드 방문 > 왼쪽 자식 > 오른쪽 자식A → B → D → H → E → I → J → C → F → K → L → G 2. 중위 순회 : 왼쪽 자식 > 노드 방문 > 오른쪽 자식H → D → B → I → E → ..

카테고리 없음 2025.06.07

트리 용어 정리

1. [ 트리 ]“데이터 사이의 계층 관계를 나타내는 자료구조”■ 트리를 구성하는 요소로는 노드(node), 가지(edge)가 있음2. [ 루트 ]트리의 가장 윗부분에 위치하는 노드. 하나의 트리에는 하나의 루트만 있다.3. [ 리프 ]트리의 가장 아랫부분에 위치하는 노드. 노드가 더 이상 뻗어나가지 않는 마지막에 위치함4. [ 안쪽 노드 ]리프를 제외한 나머지 노드(루트 포함)5. [ 자식 ]어떤 노드에서 가지로 연결된 아래쪽 노드. 노드는 자식을 여럿 가질 수 있음6. [ 레벨 ]루르로부터 얼마나 떨어져 있는지를 나타낸 값. 루트의 레벨은 0으로, 루트에서 가지가 하나씩 아래로 뻗어갈 때마다 레벨 +17. [ 차수 ]노드가 갖는 자식의 수(degree). 모든 노드의 차수가 n 이하인 트리를 n진 트..

[CodeUp] 3117 : 0은 빼!

작성한 한글 코딩스택 라이브러리 import 랜덤 객체 생성 횟수를 담을 변수 선언 K(횟수 값)로 위 변수 초기화 합을 저장할 변수 선언 스택 객체 생성 for문으로 k만큼 반복하면서 0부터 100 사이의 수를 무작위로 입력받음 (만약 0이 나오면) { n-1번째 정수를 pop } 0이 아니면 { 연달아 스택에 push함 } (스택이 비어있지 않다면) { 스택을 돌면서 모두 꺼냄 모든 정수의 합을 더함 } sout(정수 합);}해당 한글 코딩에는 랜덤 생성해놨는데 코드업 돌리니까 자꾸 출력결과 다르다고 틀려서 정수 K개만큼 입력받는 걸로 수정 작성한 코드package stack;import java.util.Scanner;import java.util.Stack;public class ..

IT/코딩테스트 2025.06.05

스택(Stack)

[Stack(스택)]→ 데이터를 일시적으로 보관하는(==쌓아놓는) 자료구조 특징LIFO (후입선출) → 마지막에 넣은 데이터를 가장 먼저 꺼냄PUSH(넣기), POP(꺼내기)PUSH와 POP이 이루어지는 꼭대기를 top이라고 하고, 스택의 가장 아랫부분을 bottom이라고 한다.예시자바 프로그램에서 메서드를 호출하고 실행할 때 프로그램 내부에서 스택을 사용한다.해당 사진은 자바 프로그램에서 메서드가 호출될 때 순서에 따라 스택이 사용되고 있음을 알 수 있다. main() 먼저 실행되므로 main() 먼저 pushmain() 안에서 z()를 호출하므로 z() push,z() 안에서 x(), y() 순대로 호출하므로 x() push했다가 pop, y() push했다가 popx, y가 모두 호출되고 끝나면 ..

[프로그래머스] 수박수박수박수박수?

문제한글 코딩홀수이면 수로 끝나게 출력 (n%2)만큼 수박 출력하고 + 수 한글자 추가 짝수이면 박으로 끝나게 출력 (n%2)만큼 수박 출력하고 int n = 11 일때, (n%2) == 0이면 { sout("수박")*2; } 아니면 { sout("수박")*2 + "수"; }내가 작성한 코드class Solution { public static void main(String[] args) { int n = 11; String result = solution(n); System.out.println(result); } public static String solution(int n) { String answer = ""..

IT/코딩테스트 2025.06.03

[프로그래머스] 올바른 괄호

문제 한글 코딩스택 선언 for(n[0]부터 문자열 길이만큼 순환하면서) { 만약 equals "("이면 { 스택에 저장하고 } 아니면 { // ")" 가 나올 때 스택에서 "("를 꺼낸다. } 만약(스택이 비어있다면) { return true하고 } 아니면 // 스택에 (가 들어있으면 return false;한다.작성한 코드public static boolean solution(String s) { boolean answer = true; Stack stack = new Stack(); for(int i =0; i고려한 점 1. 자바에서 스택구조 구현하기 java.util.Stack 클래스가 내장되어 있으므로 import하여 사용하기Stack stack = ..

IT/코딩테스트 2025.06.02

복호화와 양방향 암호화 방식

이번에는 비밀번호를 단순 암호화했지만, 이메일이나 전화번호 같이 개인 식별 가능한 정보들은 복호화가 필요한 경우가 있다고 생각한다. 예를 들어 내 정보 수정 같은 경우.. 그래서 양방향 암호화 알고리즘을 적용하여 정보 유출에 대비하고, 필요할 시에 사용자 본인만 복호화 가능해야 한다. 1. 복호화 : 암호화된 데이터를 다시 원래의 평문으로 되돌리는 과정.- 전화번호나 이메일 같은 민감 정보를 암호화해서 저장해 놓고, 사용자 본인이 마이페이지에서 정보를 수정하거나 확인할 때 다시 보여줘야 하는 경우, 이때 암호문을 다시 원래대로 복구해서 보여줌암호화된 전화번호: Zk92L30sM== → 복호화 → 원래 전화번호: 010-1234-56782. 양방향 암호화 : 암호화와 복호화가 모두 가능한 암호 방식 -..

웹 개발 2025.06.01