[Tistory] 99클럽 3기 코테 스터디 20일차 TIL /[프로그래머스] 섬 연결하기 자바 풀이, 크루스칼 알고리즘, Union-Find 알고리즘

1. 오늘의 학습 문제 문제https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 설명n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요.다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니다. 예를 들어 A 섬과 B 섬 사이에 다리가 있고, B 섬과 C 섬 사이에 다리가 있으면 A 섬과 C 섬은 ..

[Tistory] [AWS, Spring Boot3] EC2 배포, 서버 스크립트, Nginx 설치

1. EC2 인스턴스 인바운드 규칙 추가(HTTP/S, SSH는 이전에 추가) Spring Boot Server, React Server 접근 허용을 위해 아래와 같이 추가해준다.      2. 서버 Java 설치, 환경변수 설정아래 명령어를 순서대로 입력한다# 서버 접속ssh -i “키페어파일명.pem” ubuntu@{퍼블릭_DNS_주소}# 우분투 패키지 업그레이드sudo apt-get update# Java17 설치sudo api install openjdk-17-jdk# 설치 확인java -version    그리고 아래 명령어를 통해 자바 환경 변수를 설정해준다# 환경변수 설정 확인 (결과 없음 상태)$ echo $JAVA_HOME# Java 절대경로 확인$ whice java/usr/bin/ja..

[Tistory] [Spring] 스프링 웹 개발 기초 – 정적 컨텐츠/동적 컨텐츠

*인프런 김영한의 스프링 입문 강의를 기반으로 작성되었습니다. 웹 개발을 하는 3가지 방식은 다음과 같다.정적 컨텐츠 – 서버에서 파일을 있는 그대로 웹 브라우저(클라이언트)로 전달한다.MVC와 템플릿 엔진: 서버에서 프로그래밍을 통해 HTML을 동적으로 바꿔서 보내는 일을 하고, 이를 위해 MVC(Model, View, Controller) 패턴으로 개발하는 경우가 많다.API – 클라이언트 또는 다른 서버와 JSON이라는 데이터 구조 포맷으로 클라이언트에게 데이터를 전달하는 방식을 말한다. 1. 정적 컨텐츠스프링 부트는 정적 컨텐츠 기능을 자동으로 제공한다.스프링부트 프로젝트 내 src/main/resource/static 위치에 hello-static.html 파일을 생성한다.그리고 다음과 같은 코..

[Tistory] 대전 교구 미성년자 성추행 사건으로 큰 충격

대전교구에서 발생한 미성년자 성추행 사건은 한국 천주교회에 큰 충격을 안겨주었습니다. 이 사건은 성직자에 대한 신뢰가 흔들리게 만들었으며, 교회 내부의 구조적 문제와 윤리적 책임의 부재를 드러내는 계기가 되었습니다. 대전교구의 성추행 사건은 교회와 신자들 사이의 신뢰를 무너뜨리고, 성직자 관리와 윤리 교육의 중요성을 다시 한번 일깨웠습니다. 사건은 대전교구의 한 사제가 미성년자인 여성 신자를 성추행한 사실이 밝혀지면서 시작되었습니다. 피해자는 신앙심과 종교적 신뢰를 배신당한 상처를 입었고, 이를 교구에 신고하면서 사건이 세상에 드러났습니다. 그러나 교구의 초기 대응은 사건의 심각성을 제대로 인식하지 못한 듯한 모습이었습니다. 피해자의 호소는 무시되거나 축소되었고, 교회는 사건을 덮으려는 듯한 태도로 일관..

[Tistory] Beginner 9회차 (8/7) | 콜스택(Call Stack)과 이벤트루프(Event Loop), 리액트 라우터(React Router)를 이용한 프로젝트 페이지 관리, 라우팅의 종류(기본/중첩/동적 라우팅)

콜스택과 이벤트루프 콜스택(LIFO: Last In, First Out)콜 스택은 함수 호출이 쌓이는 곳JavaScript는 단일 스레드 언어로, 한 번에 하나의 작업만 수행할 수 있는데, 콜 스택은 이러한 작업들을 순서대로 처리한다  이벤트 루프(FIFO:First In, First Out)이벤트 루프는 JavaScript 런타임 환경에서 비동기 작업을 처리하는 메커니즘콜 스택이 비어 있는지 확인하고, 비어 있으면 큐(Queue)에 대기 중인 콜백 함수를 콜 스택으로 이동시킨다 예제 –> 실행 순서 1. console.log(‘Start’)가 호출되어 콜 스택에 추가되고 실행됩니다. 2. setTimeout 함수가 호출되어 콜 스택에 추가됩니다. setTimeout 함수는 Web API를 통해 타이머..

[Tistory] [Android] Context와 메모리 누수

Context의 정의Context란 어플리케이션 환경에 대한 인터페이스이다. 그래서… 그게 무슨 말인데..?” Context는 어플리케이션 환경에 대한 인터페이스이다 ” 라는 말은, Context라는 클래스가 어플리케이션 리소스와 시스템 서비스등에 접근할 수 있는 메소드들을 갖고 있다는 것이다.또한, Activity, Service, Application 들은 Context라는 추상클래스를 상속받은 구현체들이다. 앱 내에는 여러개의 Activity가 존재할 수 있고, 따라서 Activity Context도 여러개 생길 수 있다. 하지만, 어플리케이션은 하나이므로 Activity Context와는 다르게 Application Context는 1개만 존재한다.[Context의 상속트리]Context가 사..

[Tistory] [Spring/JUnit] Mock 객체 설정 문제 : java.lang.AssertionError: Expecting actual not to be null

❗️에러 메시지java.lang.AssertionError: Expecting actual not to be null     💻 개발 환경Framework : Spring Boot `3.2.3`DB : MySQL(로컬), H2(테스트)Library : JPA, QueryDSL `5.0.0`Test : JUnit     🔎 원인Spring에서 Junit으로 Service 단의 게시글 등록 기능을 테스트하는데 에러가 났다.게시글 등록 메소드는 `save()`를 수행하고, 새로 등록된 게시글의 `id`를 반환한다. 이를 테스트하기 위해 Mock 객체를 만들어 `save()`를 수행하면 반환하도록 했고, `getId()`를 호출하면 `id`로 1L을 반환하도록 설정했다. 그리고 게시글 등록 메소드를 실행했을..

[Tistory] 네트워크 패킷 모니터링을 위한 Snort 환경 구축

Snort 환경을 구축하기 위해서는 다양한 프로그램을 설치해야한다. 설치 과정에서 버전 차이로 인한 호환성 문제와 구성파일 수정 과정에서 잦은 오류가 발생할수 있으므로, 차분하게 시간여유를 가지고 진행하는것이 좋다. 가상환경: VMware Workstation Pro 17운영체제: Windows 7 Professional K설치한 프로그램: Winpcap 4.1.3, Snort 2.9.2.3, Xampp 1.7.1, Base 1.4.5 , adodb-5.20.20, Notepad++ 1. 클라이언트, 서버 환경 구성1.1 server, client 가상환경 설치VMware 설치 방법과 Windows 7 Professional K 과정을 정리하였으나, Windows 7 지원이 종료된지 오래되어 크롬 설치과..

[Tistory] [7/24] OOP에 절여진 네게 함수형 프로그래밍을

(사실 OOP를 제대로 알고있는지도 모르겠다는게 사실이지만) 함수형 프로그래밍이 뭐야 대체..무지한 첫 생각 : 하던대로 함수 짜는게 함수형 프로그래밍 아님?학습한 결과 : 불변성과 가변성에 대해 생각한게 함수형 프로그래밍이다.순수함수 그리고 불변성순수함수가 뭘까?함수형 프로그래밍함수형 프로그래밍 : 부수 효과를 없애고 순수 함수를 만들어 모듈화 수준을 높이는 프로그래밍 패러다임부수 효과 = 외부의 상태를 변경하는 것 또는 함수로 들어온 인자의 상태를 직접 변경하는 것순수 함수 = 부수효과가 없는 함수 즉, 어떤 함수에 동일한 인자를 주었을 때 항상 같은 값을 리턴하는 함수 + 외부의 상태를 변경하지 않는 함수출처: https://jeong-pro.tistory.com/23 [기본기를 쌓는 정아마추어 코..

[Tistory] [개발일기] 토의로 끝나는 토이 프로젝트가 되지 않기 위해

[개발일기]토의로 끝나는 토이 프로젝트가 되지 않기 위해prologue. 포트폴리오를 위한 프로젝트는 Todo-List로 충분하지 않나요? 사전과정과 미니 프로젝트를 지나는 동안 본 과정에 들어가기 전까지 배운 지식들을 활용해Todo-List를 만들어 보기도 했고  본 과정에서는 각자의 언어(Java & JavaScript)와주특기(Spring & React)를 배우며 각자 레벨에 따라프론트 엔드는 vercel 에서, 또 백엔드는 다른 플랫폼을 활용해서토이프로젝트를 제작하며 지금까지 달려왔다. 사용하지도, 다시금 둘러보지도 않을언젠가는 정리의 명목하에 지워질지도 모르는조그만 내 작품들을 돌아보며.. 문득, 7월 19일 부터 진행되는 팀 프로젝트에서는’더이상 버려지는 토이 프로젝트는 만들고 싶지 않다.’ ..