2024/10 9

[프로그래머스] 개인정보 수집 유효기간 JAVA

문제[프로그래머스] 개인정보 수집 유효기간 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다. 예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1월 5일에 수집된 개인정보가 A약관으로 수집되었다면 해당 개인정보는 2022년 1월..

[프로그래머스] 바탕화면 정리 JAVA

문제[프로그래머스] 바탕화면 정리 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다. 컴퓨터 바탕화면은 각 칸이 정사각형인 격자판입니다. 이때 컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallp..

[자료구조] 트리

트리트리는 그래프 중 하나로 그래프의 특징처럼 정점과 간선으로 이루어져 있고, 트리 구조로 배열된 일종의 계층적 데이터의 집합입니다. 트리로 이루어진 집합을 숲이라고 합니다. 트리의 특징부모-자식 관계로 정의하고, 부모에서 자식으로 간선이 이어져 있는 방향 그래프입니다.트리에서 부모가 없는 노드를 부모 노드라고 합니다.임의의 두 노드 사이의 경로는 '유일무이'하게 '존재'합니다. 즉, 트리 내의 어떤 노드와 어떤 노드까지의 경로는 반드시 있습니다.V - 1 = E라는 특징이 있습니다. 간선 수는 노드 수 - 1 입니다. 트리의 구성 트리는 루트노드, 내부노드, 리프노드로 이루어져 있습니다. 루트 노드: 가장 위에 있는 노드입니다. ( 트리에서 부모가 없는 최상위 노드, 트리의 시작점 )내부 노드: 루트 ..

ERD와 정규화 과정

ERD와 정규화과정ERD(Entity Relationship Diagram): 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 하며, 릴레이션 간의 관계들을 정의한 것입니다.만약 서비스를 구축한다면 가장 먼저 신경 써야 할 부분이며 이 부분을 신경쓰지 않고 서비스를 구축한다면 단단하지 않은 골조로 건물을 짓는 것이나 다름없습니다. ERD의 중요성ERD는 시스템의 요구사항을 기반으로 작성되며 이 ERD를 기반으로 데이터베이스를 구축합니다. 데이터베이스를 구축한 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우에 설계도 역할을 담당하기도 합니다.하지만 ERD는 관계형 구조로 표현할 수 있는 데이터를 구성하는 데 유용할 수 있지만 비정형 데이터를 충분히 표현할 수 없다는 단점이 있습니다. 비정형..

데이터베이스의 종류

데이터베이스의 종류 관계형 데이터베이스 관계형 데이터베이스(RDBMS)행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스를 가리키며 SQL이라는 언어를 사용합니다.종류: MySQL, PostgreSQL, 오라클, SQL Server, MSSSQL 등 MySQLMySQL은 대부분의 운영체제와 호환되며 현재 가장 많이 사용하는 데이터베이스C, C++로 만들어졌으며 MyISAM 인덱스 압축 기술, B- 트리 기반의 인덱스, 스레드 기반의 메모리 할당 시스템, 매우 빠른 조인, 최대 64개의 인덱스를 제공대용량 데이터베이스를 위해 설계되어 있고 롤백, 커밋, 이중 암호 지원 보안 등의 기능을 제공하며, 많은 서비스에서 사용됨 MySQL 스토리 엔진 아키텍처스토리 엔진: 데이터베이스 관리 시스템이 데..

[프로그래머스] 성격 유형 검사하기 JAVA

문제[프로그래머스] 성격 유형 검사하기 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 나만의 카카오 성격 유형 검사지를 만들려고 합니다. 성격 유형 검사는 다음과 같은 4개 지표로 성격 유형을 구분합니다. 성격은 각 지표에서 두 유형 중 하나로 결정됩니다.   이때 검사자가 질문에서 약간 동의 선택지를 선택할 경우 어피치형(A) 성격 유형 1점을 받게 됩니다. 만약 검사자가 매우 비동의 선택지를 선택할 경우 네오형(N) 성격 유형 3점을 받게 됩니다. 위 예시처럼 네오형이 비동의, 어피치형이 동의인 경우만 주어지지 않고, 질문에 따라 네오형이 동의, 어피치형..

[프로그래머스] 햄버거 만들기 JAVA

문제[프로그래머스] 햄버거 만들기 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재료의 ..

2024-09-19 ~ 2024-09-25 WIL

1. [팀프로젝트]아웃소싱 프로젝트( 배달 어플리케이션 만들기 )이번 팀 프로젝트에서는 배달 어플을 만들기 프로젝트를 했습니다.저희는 와이어프레임, ERD, API명세서를 작성하고 프로젝트를 시작하였습니다.  저는 이중에서 주문과 리뷰를 맡아서 개발하였습니다. 주문과 리뷰 요구사항 위 내용을 필수 구현으로 최소한의 구현이었고, 만약 기능을 더 구현하고 싶다면 추가적으로 구현할 수 있었습니다. 처음에는 요구사항에 맞게 ERD를 아래 사진과 같이 만들고 개발을 하였습니다. 하지만 개발을 완료한 후에 주문 한번에 하나의 메뉴만 주문할 수 있다는 내용이 현실과는 맞지 않는것 같아 한 주문에 여러 음식을 주문할 수 있도록 orderDeatil테이블을 만들고 장바구니 기능을 추가하기 위해 shoppingCart 테..

TIL 2024.10.12

2024-09-09 ~ 2024-09-13 WIL

1. Spring 심화 주차 개인 과제 ( Test 코드 학습 )이번주에 AOP와 테스트 코드에 대해 배웠습니다. AOPAOP는 관점 지향 프로그래밍으로, 관점을 기준으로 다양한 기능을 분리하여 보는 프로그래밍입니다. AOP는 런타임 시점에 적용하는 방식으로 공통기능을 작성할 때 매우 유용하게 사용됩니다. 따라서 저는 프로젝트에서 어드민 사용자만 접근할 수 있는 특정 API에는 접근할 때마다 접근 로그를 기족하기 위해 AOP를 사용하였습니다.  이때 저는 AOP를 어노테이션 방식으로 사용하였습니다. 어노테이션 선언@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface InfoAnnotation {} 어노테이션 구현@S..

TIL 2024.10.11