넘어졌으면 일어서서 다시 걷자 🐈My GitHub🐈

전체 글 138

소프트웨어 개발 보안 가이드에 대해

소프트웨어 개발 보안 가이드GitHub을 둘러보다가 우연히 어떤 레포에서 "소프트웨어 개발 보안 가이드"에 대해 알게 됐다. 한국인터넷진흥원에서 제작한 문서인데 이 가이드는 SW 개발 생명주기에서 보안 취약점을 체계적으로 제거하고, 안전한 소프트웨어를 개발하기 위한 종합적인 지침을 제공한다. 초기 설계 단계에서부터 보안을 철저히 반영해야 하며, 구현 단계에서 시큐어 코딩 원칙을 준수하는 것이 중요히 여긴다. 정부기관에서 제공하는 가이드라인이기에 따라서 손해볼 건 없다고 본다. 아직은! 아래는 요약본이고 관심있다면 한 번씩 둘러보시길! 배경과 목적소프트웨어 보안 취약점이 증가하면서 SW개발 생명주기(SDLC) 전반에 보안활동을 적용해야 할 필요성이 강조됩니다.이 가이드는 개발 단계별 보안 강화 활동과 시큐..

ETC/thinking 2024.11.19

알고리즘 - 분할정복

분할정복분할 정복은 문제를 더 작은 하위 문제로 나누고, 각 하위 문제를 해결한 뒤 결과를 결합하여 원래 문제의 해를 구하는 알고리즘 설계 기법이다.이 방법은 재귀적 접근을 기반으로 하며, 특정 문제를 풀기 위해 문제를 반복적으로 쪼개어 더 단순한 형태로 만들고 이를 조합하여 해를 도출한다. 이 과정은 아래 세 단계로 구성된다:분할(Divide):원래 문제를 더 작은 부분 문제로 분할한다.일반적으로 이 단계는 입력 데이터를 나누거나, 문제의 범위를 축소하는 과정을 포함한다.정복(Conquer):나뉜 부분 문제를 재귀적으로 해결한다.하위 문제의 크기가 충분히 작아지면(예: 크기가 1인 경우), 직접 해결(기저 사례)한다.결합(Combine):각 부분 문제의 결과를 결합하여 원래 문제의 해를 구한다.결합 과..

알고리즘 - 누적합

누적합누적합(Cumulative Sum)은 배열이나 리스트의 특정 구간 합을 빠르게 계산하기 위해 사용하는 알고리즘 기법이다. 일반적으로 대량의 데이터에서 특정 구간의 합을 반복적으로 구해야 하는 경우, 단순히 반복문을 이용해 매번 합을 계산하는 것은 비효율적일 수 있다. 이때, 누적합 배열을 활용하면 원하는 구간의 합을 상수 시간 내에 구할 수 있다. 누적합의 원리누적합의 기본 원리는 배열의 각 위치까지의 값을 순차적으로 더해 새로운 배열을 생성하는 것이다. 이를 통해 배열의 특정 구간 합을 빠르게 계산할 수 있다. 예를 들어, 배열의 i번째 위치까지의 누적합은 원본 배열의 0번째 인덱스부터 i번째 인덱스까지의 합을 저장하는 형태다.누적합 배열을 S라고 할 때, 원본 배열 A에서 구간 [i, j]의 합..

알고리즘 - 동적프로그래밍 Dynamic Programming

동적 프로그래밍동적 프로그래밍에 대해서 다시금 공부하고 있다. 동적 프로그래밍(Dynamic Programming, DP)은 복잡한 문제를 더 작은 하위 문제들로 나누어 해결한 후, 그 결과를 저장하여 재사용함으로써 문제 해결의 효율성을 높이는 기법이다. 이는 주로 하위 문제가 반복해서 나타나는 경우에 사용되며, 각 하위 문제의 결과를 기록(memoization)하거나 테이블 형식으로 정리하여 중복 계산을 방지한다. DP는 최적화 문제에서 자주 사용되며, 두 가지 주요 접근 방식이 있다: 상향식(Bottom-Up)과 하향식(Top-Down). 단순히 말하자면, 동적 프로그래밍은 "이전에 계산한 값을 저장해 두었다가 필요할 때 재사용하는 방법"이다. 이는 중복 계산을 줄이고 문제를 더 빠르게 해결할 수 있..

[회고] 우테코 프리코스 3주차 - 로또

프리코스 진행 방식진행 방식미션은 과제 진행 요구 사항, 기능 요구 사항, 프로그래밍 요구 사항 세 가지로 구성되어 있다.세 개의 요구 사항을 만족하기 위해 노력한다. 특히 기능을 구현하기 전에 기능 목록을 만들고, 기능 단위로 커밋 하는 방식으로 진행한다.기능 요구 사항에 기재되지 않은 내용은 스스로 판단하여 구현한다.매주 진행할 미션은 화요일 오후 3시부터 확인할 수 있으며, 다음 주 월요일까지 구현을 완료하여 제출해야 한다. 제출은 일요일 오후 3시부터 가능하다.정해진 시간을 지키지 않을 경우 미션을 제출하지 않은 것으로 간주한다.종료 일시 이후에는 추가 푸시를 허용하지 않는다.과제 제출 전 체크 리스트기능을 올바르게 구현했더라도 요구 사항에 명시된 출력 형식을 따르지 않으면 0점을 받게 된다.기능..

[회고] 우테코 프리코스 2주차 - 자동차 경주

🌍과제 - 자동차 경주 사용자에게 경주 횟수를 받아서 횟수만큼 경주를 진행하여 가장 많이 전진한 자동차가 승리하는 프로그램을 구현하는 것이다.  ❗구현 기능 목록자동차 생성 기능자동차 이름은 쉼표(,)를 기준으로 구분이름은 5자 이하만 가능전진 여부 판단 기능4 이상일 경우에만 전진경주 진행 및 우승자 선정 기능시도횟수만큼 경주 진행각 자동차의 전진 여부 저장경주가 끝나면 우승자 선정사용자 입력 및 결과 출력 기능경주 진행 관리 기능 회고테스트 코드를 적절하게 작성할 수 있도록 해야겠다.@ParameterizedTest@ValueSource(ints = {10, 20, 100})void 시도횟수만큼_경기를_진행하면_모든_자동차의_전진횟수가_같지_않다(int round) { // given r..

알고리즘 - 백트래킹 Backtracking

백트래킹이란?백트래킹은 해를 찾는 과정에서 여러 가능성을 탐색하다가, 특정 경로가 잘못되었음을 알게 되면 되돌아가서 다른 경로를 시도하는 문제 해결 기법이다. 모든 가능한 경우의 수를 탐색하지만, 가지치기(pruning)를 통해 비효율적인 경로를 배제하여 효율성을 높인다. 다시 말해, 완전 탐색(브루트 포스)의 개선된 형태라 할 수 있다. 단순히 요약하자면, 백트래킹은 "이 길이 아닌 것 같을 때 원래 왔던 길로 되돌아가서 다른 길을 가보는 것"이다. 이는 특성으로 알 수 있듯이 대부분 DFS로 구현할 수 있다.  백트래킹의 예시이번 예시는 9663번 N-Queen 문제를 기준으로 하겠다. 먼저 구현 문제를 보자.  문제 자체는 백트래킹을 잘 활용해야 풀 수 있다. 나는 문제를 다 읽고 2차원 배열로 풀..

[회고] 우테코 프리코스 1주차 - 문자열 덧셈 계산기

🌏과제 - 문자열 덧셈 계산기입력한 문자열에서 숫자를 추출하여 더하는 계산기를 구현한다.쉼표(,) 또는 콜론(:)을 구분자로 가지는 문자열을 전달하는 경우 구분자를 기준으로 분리한 각 숫자의 합을 반환한다. 예: "" => 0, "1,2" => 3, "1,2,3" => 6, "1,2:3" => 6앞의 기본 구분자(쉼표, 콜론) 외에 커스텀 구분자를 지정할 수 있다. 커스텀 구분자는 문자열 앞부분의 "//"와 "\n" 사이에 위치하는 문자를 커스텀 구분자로 사용한다. 예를 들어 "//;\n1;2;3"과 같이 값을 입력할 경우 커스텀 구분자는 세미콜론(;)이며, 결과 값은 6이 반환되어야 한다.사용자가 잘못된 값을 입력할 경우 IllegalArgumentException을 발생시킨 후 애플리케이션은 종료되..

알고리즘 - DFS와 BFS

개요코테 준비를 시작했는데 너무 부족함을 느끼고 있다. 나오는 문제는 막힘없이 풀 수 있는 정도가 되고 싶다. 왜 이렇게 해야 하는가에 대한 이유는 다음 글을 읽어보길 바란다. 도움이 되는 내용도 많다! https://yozm.wishket.com/magazine/detail/2755/ 개발자를 위한 실전 ‘코딩테스트’ 준비 팁 | 요즘IT개발자라면 누구나 ‘코딩테스트’를 준비해 본 경험이 있을 겁니다. 코딩테스트는 여러분의 두뇌가 얼마나 비상한지, 복잡하게 꼬인 문제를 얼마나 천재적인 발상으로 해결할 수 있는지 시험yozm.wishket.com 그래서 나는 이전에 강의로 배웠던 내용을 다시 공부하거나 부족한 부분을 채우려고 한다. 처음은 DFS와 BFS로 스타트를 끊고자 한다. 설명은 백준의 1260번..

전기 Electric

전류, 전압, 저항에 대해 우리는 일상에서 전기 에너지로 작동하는 기기를 사용하고 있다. 이번에는 이전부터 흥미가 있었던 전기 에너지에 대한 내용을 다루려고 한다. 보통 컴퓨터 구조 분야로 분리하지 않지만 이번만 따로 분리하지 않고 컴퓨터 구조에서 설명하겠다.    전압 전류를 한 방향 또는 여러 방향으로 흐르게 해주는 물질을 '도체'라고 한다. 이러한 도체 내에 있는 전기적인 위치 에너지를 '전위'라고 하며, 두 점 사이의 전위의 차이를 '전위차'라고 한다. 물은 높은 곳에서 낮은 곳으로 흐른다는 사실은 모두가 알 것이다. 이처럼 전하는 전위가 높은 곳에서 낮은 곳으로 이동한다. 이때 전위의 차이가 '전압'이다. ✌️ 높은 곳에서 떨어지는 물이 더 많은 에너지를 갖고 있듯이, 전압이 클수록, 다시 말해..

728x90
반응형