전체 글 110

[TIL][CS/소프트웨어 설계] 요구사항 정의 및 분석, 분석 도구

오늘은! 소프트웨어 설계에 필요한 요구사항 정의 및 분석에 대해 공부했다. 요구사항이 뭐고, 요구사항을 어떻게 정의하고, 어떤 과정을 통해서 분석하는지 보겠음 우선 가장 첫 번째로 현행 시스템의 구성을 파악하는 것이 필요하다. ✏️ 현행 시스템 파악 절차 개발하려는 시스템의 방향성을 설정하기 위해, 현행 시스템의 구성을 파악하는 절차 1단계 : 시스템 구성, 시스템 기능, 시스템 인터페이스 파악 2단계 : 아키텍처, 소프트웨어 구성(DBMS, 운영체제) 파악 3단계 : 하드웨어 구성, 네트워크 구성 파악 🔹 운영체제(OS) 파악 시 고려 사항 가용성, 성능, 기술지원, 주변기기, 구축 비용이 얼마나 되는지, ... 이런 것 메모리 누수 성능 영향⭐, 구축비용 TCO (특정 기간동안 OS를 관리하고 사용하..

Computer Science 2024.03.12

[TIL][CS] 소프트웨어 개발 방법론

오늘은! 소프트웨어 공학에서 다루는 내용 중 하나인 '소프트웨어 개발 방법론'에 대해 공부했다. 공부한 내용에 대해 다시 쓰면서 외우기도 하고, 사실 전에 개발을 제대로 시작하기 전에 정처기 필기시험 볼 때 공부를 했었는데, 지금 개발을 제대로 시작한 후 볼 때와 느낌 자체가 달라서 회고도 적을 겸 포스팅해본다. ✏️ 소프트웨어란? 컴퓨터 하드웨어에게 동작 방법을 지시하는 명령어 집합인 프로그램과, 프로그램의 수행에 필요한 절차, 규칙, 관련 문서를 정리해 놓은 것 분류 : 시스템 소프트웨어, 응용 소프트웨어, 미들웨어 소프트웨어 우리가 일반적으로 생각하는 프로그램, 소프트웨어라고 불리는 것들은 대체로 응용 소프트웨어에 해당이 된다. 🔹 시스템 소프트웨어 (System Software) 소프트웨어 작동 ..

Computer Science 2024.03.12

[항해99 취업 리부트 코스 수강 후기] 실력적으로 성장하고 싶은 개발자라면.

코스 수강 후기를 쓰기 전에, 먼저 사담으로 말 할 것이 있다면 .. 필자는 평소엔 어떤 후기도 잘 쓰지 않는 사람이다. (순전히 귀찮아서) 하지만 나와 같은 개발자 취준생 분들을 위해, 코스 합류에 고민하고 있다면 혹시나 이 후기가 조금이나마 의사 결정하는 데 도움이 됐으면 해서 이 후기를 적는다. 🔎 필자는 이전에 어떻게/얼마나 개발을 공부했나? 이전에 나는 약 5개월 간의 부트캠프를 진행한 후 수료한 지 한달이 조금 지난 비전공자 백엔드 개발자 취준생이었다. KDT로 진행되는 부트캠프를 수강해 본 사람들이라면, 정말 빠르게 커리큘럼이 지나간다는걸 알 것이다. 수업을 듣는 동안 코드를 이해할 새 없이 빠르게 진행되는 진도로 강사님의 코드를 클론 코딩하다시피 진행돼서, 수업 후 그 날 그 날 나간 진도..

Review 2024.03.10

[programmers lv3.python] 베스트 앨범 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 입출력 예 꾸준히 하고 있는 알고리즘 스터디에서 lv 2 까지의 문제들은 풀이를 보지 않아도 혼자서 얼추 풀 수 있었던 문제들이 대부분이었다. 모르겠는 문제의 풀이를 찾아봤을 때 이해가 바로바로 되기도 했었고 🥲 이 문제를 읽고 이해한 후, 어느 정도 해시를 써서 풀어야 겠다는 생각은 바로 했지만Dictionary 2개를 사용하는 문제였기 때문에 헷갈려서 문제 풀이를 많이 해맸다. 결국 풀이..

[프로젝트] QueryDSL 사용 시 Q클래스 import 불가 문제 해결 (gradle)

[✏️ 문제] 프로젝트 중, QueryDSL을 사용해서 뉴스피드 검색 기능을 구현하는 과정에서, RepositoryImpl 클래스에서 Q클래스 import가 안되는 문제가 발생했다. 툴을 이용한 자동 임포트가 안 돼서, 강제로 입력 해도 안 됐다 ..(당연히) [✏️ 분석] build.gradle에 설정을 잘못했나 해서 dependencies도 다시 들여다 보고, Configuration 클래스 관련 문제인가 싶어 다시 점검해 보아도 잘못 설정한 것은 없었다. 그러다 문득 import가 안된다면 경로 문제인 것이 아닐까 싶어 Q클래스가 속해 있는 루트 파일을 봤다. 문제 상황 발생 당시에 Q클래스 파일은 정상적으로 build/generated 디렉토리 밑에 정상적으로 있었는데, 인텔리제이가 이 Q클래스 ..

Project/Newsfeed 2024.03.02

[성능 테스트] Artillery로 부하 테스트 하기(1/3), Artillery 설치

현재 진행하고 있는 뉴스피드 프로젝트의 기능들을 얼추 마무리하고 나서,문득 내가 구현한 한 api에 대한 성능을 평가해보고 확장성을 검증해보기 위해 부하 테스트를 진행해 보기로 했다. 개발을 진행하다 어, 이런 상황도 있을 수 있겠구나? 내가 구현한 방향이 이런 상황을 버틸 수 있을까? 라는 의문이 들었기 때문인데 .. 의문에 대한 자세한 상황은 추후 포스팅에서 명시하도록 하고, 일단 기본적인 아틸러리 설치와 테스트 파일 생성에 대해 먼저 포스팅한다! 툴은 Artillery로 선정하고 진행해보았다.Artillery 란?먼저, 아틸러리에 대해 간단히 알아보자.Artillery는 간편하게 사용할 수 있는 기능과 유연성을 제공하여 개발자가 애플리케이션을 효과적으로 테스트할 수 있는 오픈 소스 라이브러리이다. ..

Project/Newsfeed 2024.02.27

[Spring] AOP 란? 관점 지향 프로그래밍 AOP 정의

진행하고 있는 개인 프로젝트에 AOP를 사용한 기능을 추가해 보고 싶어서, AOP 관련 공부를 하려고 한다.포스팅의 순서는 크게 1. AOP 사용 이유 2. AOP 정의3. AOP 관련 용어 4. Advice의 종류 로 진행된다.AOP를 쓰는 이유 우리가 개발을 하다가, 모든 메서드에 메서드의 수행 시간을 알아내는 로그를 찍어야 한다고 생각해보자.메서드가 얼마 없다면 괜찮겠지만, 메서드가 100개, 1000개 된다면 ? 일일히 로그를 찍는 코드를 100번 1000번 서비스단에 넣게 될 것이다.  (다들 .. 반복 작업 ... 싫어하시죠 ..? 🥲)그리고 넣는다고 하더라도, 핵심 기능과 로그 기능이 섞이기 때문에, 관심사 분리와 중복 코드 지양이라는 부분에서 봤을 때도 좋은 코드는 ..

Framework/Spring 2024.02.21