🌱 오늘의 주제 : 네트워크 토폴로지와 병목 현상 🌱 네트워크 네트워크란 노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미한다. 노느란 서버, 라우터, 스위치 등 네트워크 장치를 의미하고 링크는 유선 또는 무선을 의미한다. 🌱 처리량과 지연 시간 좋은 네트워크란 많은 처리량을 처리할 수 있으며 지연 시간이 짧고 장애 빈도가 적으며 좋은 보완을 갖춘 네트워크를 말한다. 처리량(throughput)은 링크 내에서 성공적으로 전달된 데이터의 양을 말하며 보통 얼만큼의 트래픽을 처리했는지를 나타낸다. 단위로는 bps(bits per second)를 쓴다. 트래픽은 특정 시점에 링크 내에 '흐르는' 데이터의 양을 말한다. 트래픽이 많아졌다 = 흐르는 데이터가 많아졌다. 처리..
🌴 문제 문제 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. 입력 입력은 테스트 케이스마다 한 줄 간격으로 n이 주어진다. (2 < n < 100,000) 입력의 마지막엔 -1이 주어진다. 출력 테스트케이스 마다 한줄에 하나씩 출력해야 한다. n이 완전수라면, n을 n이 아닌 약수들의 합으로 나타내어 출력한다(예제 출력 참고). 이때, 약수들은 오름차순으로 나열해야 한다. n이 완전수가 아니라면 n is NOT perfect. 를 출력한다. 예제 입력 1 복사 6 12 28 -1 예제 출력 1 복사 6 = 1 + 2 + 3 12 is NOT perfec..
🌱 오늘의 주제 : 프로그래밍 패러다임 🌱 프로그래밍 패러다임 프로그래밍 패러타임(programming paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론이다. 예를 들어, 객체지향 프로그래밍은 프로그래머들이 프로그램 상호 작용하는 객체들의 집합으로 볼 수 있게 하는 반면에, 함수형 프로그램은 상태 값을 지니지 않는 함수 값들의 연속으로 생각 할 수 있게 해준다. 자바의 경우 jdk 1.8 부터 함수형 프로그래밍 패러타임을 지원하기 위해 람다식, 생성자 레퍼런스, 메서드 레퍼런스를 도입했고 선언형 프로그래밍을 위해 스트림(stream)같은 표준 API 등도 추가했다. 🌱 선언형과 함수형 프로그래밍 선언형 프로그래밍(declarative programming)이란 '..
🌱 오늘의 주제 : 디자인 패턴 (2) 🌱 MVC 패턴 MVC패턴은 모델(Model), 뷰(View), 컨트롤러(Controller)로 이루어진 디자인 패턴이다. 애플리케이션의 구성 요소를 세가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발할 수 있다. 재사용성과 확장성이 용이하다는 장점이 있다. 애프릴케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해지는 단점이 있다. 🌱 모델 (Model) 모델은 애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻합니다. 뷰에서 데이터를 수정하거나 수정하면 컨트롤러를 통해 모델을 생성하거나 갱신합니다. 🌱 뷰(View) 모델을 기반으로 사용자가 볼 수 있는 화면을 뜻한다. 모델이 가지고 있는 정보를 따로 저장하지 않아야 하며 단순히 사각..
🌴 문제 문제 어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다. 6을 예로 들면 6 ÷ 1 = 6 … 0 6 ÷ 2 = 3 … 0 6 ÷ 3 = 2 … 0 6 ÷ 4 = 1 … 2 6 ÷ 5 = 1 … 1 6 ÷ 6 = 1 … 0 그래서 6의 약수는 1, 2, 3, 6, 총 네 개이다. 두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. 출력 첫째 줄에 N의 약수들 중 K번째로 작은 수를 출력한다. 만일 N의 약수의 개수가 K개보다 적어서 K번째 약수가 존재하지 않을 경우에는 ..
🌱 오늘의 주제 : 디자인 패턴 (1) 🌱 디자인 패턴 디자인 패턴이란 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결 할 수 있도록 하나의 규약 형태로 만들어 놓은 것을 의미한다. 🌱 싱글톤 패턴 싱글톤 패턴 (singleton pattern)은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 보통 데이터베이스 연결 모듈에 많이 사용한다. 하나의 인스턴스를 만들어 놓고 해당 인스터스를 다른 모듈들이 공유하며 사용하기 때문에 인스터스를 생성할 때 드는 비용이 줄어드는 장점이 있다. 의존성이 높아지는 단점도 있다. 🌱 싱글톤 패턴의 단점 싱글톤 패턴은 단위 테스트를 주로 하는 TDD(Test Driven Development)를 할 때 걸림돌이 된다. 싱글톤 패턴..
🌴 문제 문제 4 × 3 = 12이다. 이 식을 통해 다음과 같은 사실을 알 수 있다. 3은 12의 약수이고, 12는 3의 배수이다. 4도 12의 약수이고, 12는 4의 배수이다. 두 수가 주어졌을 때, 다음 3가지 중 어떤 관계인지 구하는 프로그램을 작성하시오. 첫 번째 숫자가 두 번째 숫자의 약수이다. 첫 번째 숫자가 두 번째 숫자의 배수이다. 첫 번째 숫자가 두 번째 숫자의 약수와 배수 모두 아니다. 입력 입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 10,000이 넘지않는 두 자연수로 이루어져 있다. 마지막 줄에는 0이 2개 주어진다. 두 수가 같은 경우는 없다. 출력 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 ..
🍁 프로젝트 설명 자신이 배우고 싶은 언어를 작성해서 전 세계인들이 서로 댓글로 문법 교정 피드백 해주며 writing 실력을 업그레이드 시켜주는 프로그램입니다. Community, Grammar, Review, Live, Message 페이지가 있습니다. https://www.youtube.com/watch?v=C5rlmgVU4V4 🍁 프로젝트 코드 https://github.com/dbfl720/Writing-foreign-language- GitHub - dbfl720/Writing-foreign-language-: 자신이 배우고 싶은 언어를 작성해서 전 세계인들이 서로 댓글 자신이 배우고 싶은 언어를 작성해서 전 세계인들이 서로 댓글로 문법 교정 피드백 해주며 writing 실력을 업그레이드 시켜..
🌱 오늘의 주제 : JPA - 메소드 종류 🌱 조회 메소드 종류 🌱 조회 쿼리 메소드에 붙일 수 있는 키워드들 🌱 Native 쿼리로 조회 @Query(value="select * from post where subject= :subject", nativeQuery=true) List findBySubject(@Param("subject") String subject); 🌱 데이터 Insert , update, delete 데이터 Insert Entity 객체 정의 @ToString @Getter @Builder(toBuilder = true) // 필드 세팅, toBuilder=true: 기존 객체에 일부 필드값만 변경 가능 @NoArgsConstructor // 파라미터 없는 생성자 @AllArgsC..
🌱 오늘의 주제 : Linux 명령어 기본 사용정리. 🌱 Linux 명령어 기본 사용정리. ~ = ec2-user와 같은 것임. 즉 내문서 그림에 / 는 가장 상위에 있는 것임. 즉 root임. 그림에 / 즉 root는 매우 중요한 폴더들만 있는 곳이라 왠만하면 안거들이는게 좋음. /로 써서 나타내면 무조건 절대경로로 써서 하는 것임. Tip - tap을 눌러서 자동완성하는게 좋음 (오타 줄일 수 있다.) ls -al => 여기서 -은 옵션이란 뜻이다. // 모든 파일을 자세히 볼 수 있는 방법임. // ll을 쓰면 같은 것임. cd ../../ => 상위 폴더로 두번 올라가겠다 cd ../ => 상위 폴더로 한번 올라가겠다. cd ~ => ~로 바로갈 수 있는 아주 쉬운 방법 cd / => / 로 바로..