분류 전체보기 128

데이터베이스 구축기 – 요구사항 분석 편

데이터베이스 구축의 시작은 언제나 "요구사항 분석"입니다. 많은 개발자들이 바로 테이블부터 만들고 싶어 하지만, 실무에서는 이 단계를 대충 넘기면 잘못된 구조의 DB로 인한 재작업과 유지보수 지옥을 경험하게 됩니다. 이번 포스트에서는 제가 경험한 실제 사례를 바탕으로 요구사항 분석이 왜 중요한지, 어떻게 해야 하는지를 정리해보았습니다.1️⃣ 요구사항 분석이란 무엇인가?요구사항 분석은 말 그대로, 시스템이 어떤 기능을 해야 하는지를 정의하는 단계입니다. 단순히 어떤 데이터를 저장할지가 아니라, 비즈니스 흐름에서 어떤 데이터를 언제, 누가, 왜 사용하는지를 파악하는 작업입니다.이 분석이 제대로 되지 않으면 다음과 같은 문제가 생깁니다:테이블은 만들었는데 실제 화면에 안 쓰임데이터를 수집했는데 쿼리로 뽑아낼 ..

오라클SQL) EXISTS와 NOT EXISTS에 대해 알아보자

먼저 EXISTS 와 NOT EXISTS가 무엇인지 살펴보자 EXISTS는 SQL에서 EXISTS(서브쿼리) 식으로 사용되며 서브쿼리의 값이 있을 때 true를, 없을 때 false를 반환한다.NOT EXISTS는 EXISTS과는 반대로 NOT EXISTS(서브쿼리) 식으로 사용되며 서브쿼리의 값이 있을 때 false를, 없을 때 true를 반환한다. EXISTS(SELECT * FROM TB_TEST WHERE 1=1) = true NOT EXISTS(SELECT * FROM TB_TEST WHERE 1=1) = false이런 식으로 반환이 된다는 것이다.이걸 조건문에 사용해서 다른 곳에서 가져온 데이터와 기존에 저장되어 있는 데이터를 비교해 새로운 값만 INSERT를 할 수 있게 해준다.예제 1 ..

암호화 복호화? 그게뭔데?

일학습병행 OFF-JT 2일차 입니다.1일차 부터 올렸으면 좋겠지만... 일단 오늘 배운 걸 같이 정리해보도록 하죠 오늘은 1. 소프트웨어 아키텍처란 무엇인가?2. HTTP프로토콜 : 2-1 - Cookie와 Session에 대해서 2-2 - 요청과 응답 ( Request & Response )3. DB 보안? 3-1 - 리눅스에서 DB정보 확인과 권한 부여하는법 3-2 - DVWA를 활용한 sql injection 테스트방법4. chat-GPT와 파이썬을 활용한 데이터 분석 방법5. 암호화를 중심으로 한 보안에 대해서 배웠습니다.그 중에서 가장 기억에 남는 (가장 마지막에 해서... 중요하기도 하지만..)*암호화 를 중심으로 한 보안*에 대해서 포스팅 해보려고 합니다.암호화 를 중심으로 한 ..

Programmers 문제를 풀어봅시다. Day28

1. 잘라서 배열로 저장하기 문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요. function solution(my_str, n) { const num = Math.ceil(my_str.length / n); const answer = []; for (let i = 0; i = my_str.length) { end = my_str.length; } else { end = start + n; } answer.push(my_str.substring(start, end)); } return answ..

Programmers 문제를 풀어봅시다. Day27

1. 직사각형 넓이 구하기 - 2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. - 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요. function solution(dots) { let answer = 0 const width = Math.max(...dots.map(a => a[0]))-Math.min(...dots.map(a => a[0])) const height = Math.max(...dots.map(a => a[1]))-Math.min(...dots.map(a => a[1])) answer = width*hei..

Programmers 문제를 풀어봅시다. Day26

1. 세균 증식 어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요. function solution(n, t) { let answer = 0; answer=Math.pow(2,t)*n return answer; } - answer라는 변수를 0으로 초기화한 후 answer에 Math.pow(2, t) * n의 결과를 대입합니다. - Math.pow(2, t)는 2의 t승을 계산하는 함수입니다. - 이 값에 n을 곱한 후, answer에 대입하여 결과를 계산합니다. 2. 문자열 정렬하기 (2) 영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때,..