전체 글

https://github.com/binary-ho
🚀 PS! 🚀/🤖 Algorithm 🤖

배낭 문제를 풀어내는 다양한 방법들! greedy, dp, backtracking, branch & bound

목차 knapsack 문제는 무게 제한이 있는 가방에, 무게 제한을 지키면서도 배낭에 담긴 물건의 가격의 합이 가장 큰 경우를 알아내는 문제이다. 이런 배낭 문제를 푸는 다양한 방법을 소개할 것이다. 그리디한 방식과 그 한계 일반적인 동적 계획법과 개선된 버전 backtracking - dfs 그리고 BFS를 이용한 분기 한정법 (dfs 보다 더 나을게 없다.) 이를 개선한 Best First Search를 이용한 분기 한정법! 이렇게 5가지 방식을 소개할 것이다. 1. 배낭 문제와 그리디한 풀이 knapsack 문제는 배낭에 물건을 채우는 문제이다. 보통 물건들의 무게와 그 가격이 정해져 있는 상황이 주어지고, 최대 이득이 되는 만큼 물건을 채워야 하는 문제이다. 배낭은 감당할 수 있는 무게의 상한이 ..

🌱 Java & Spring 🌱

Lambda & Stream의 도입 배경과 원리, 최적화 전략! 알고 쓰자!!!

람다와 스트림은 원리도 모른 채 사용되는 경우가 많다. 인텔리제이 자동완성, Chat GPT와 코파일럿이 기가 막히게 알려주는데 왜? 알아야? 하지? 싶을 수 있다. 개인적으로 그냥 달달 외워서 사용하는 것을 매우 지양하기 때문에 이번에는 최대한 사용법 보다는 도입 배경이나 원리를 중심으로 얘기해보고 싶어서 글을 써 보았다. 단순 문법은 검색하면 바로 알 수 있다. 중요한건 원리 이해를 기반으로 한 제대로 된 활용이라고 생각한다. 여기에선 도입 배경과 원리, 최적화 전략 등을 알아보자. 재미있는 이야기들이 있다. 1. Lambda Expression 1.1 람다 도입 배경 프로그래밍 언어는 생물처럼 진화한다. 어떤 방향으로 발전하던지 혹은 발전하지 않던지, 환경에 잘 어울리면 살아남고, 어울리지 않으면 ..

🔥 Projects 🔥

[충격] S3 배포시 '이것' 설정 안 하자... 개인정보 '술술'

[이 글에서 결국 하고 싶은 말] 1. S3 + CloudFront를 통해 클라이언트를 배포할 때는 사용할 때는 S3 웹 호스팅을 기능을 비활성화 한 다음에, 버킷 엔드포인트과 CloudFront를 연결한 다음 OAC 설정하고, S3 정책을 작성하여 CloudFront에서만 접근하도록 설정하세요. 2. OAI 대신 새로 도입된 OAC에 대한 간단한 설명과 S3 버킷의 파일을 안전하게 보호하기 위한 Access 설정, S3 Bucket 정책을 작성하는 방법을 알려드립니다. 3. 소소하게, S3로 정적 프로젝트 배포시 CloudFront를 사용하는 장점과 S3 버킷의 파일들을 CloudFront를 통해 배포하는 방법도 알려드립니다. 안녕하세요? 이진호 TV의 이진호입니다. 오늘은 React Project를 ..

🌱 Java & Spring 🌱

바이트 코드를 JVM에 싸서 드셔보세요

JVM은 자바 기본서를 피면 가장 앞에 나온다. 분명 살면서 몇 번을 읽었지만, 누가 물어보면 자세히 답변이 어려운 것을 모두가 공감할 것이다. 대충 어찌어찌 해서 바이트 코드가 만들어지고, 그걸 실행 시켜서 어떤 OS 위에서도 잘 돌아가게 해주는 가상머신 아닌가..? 이런 답변만이 머릿 속을 맴돌 뿐이다.. JDK와 JRE는 봐도 봐도 헷갈리고 모호하다 이번 기회에 확실하게 알아보자. JVM과 바이트 코드가 뭐 하는 물건인지? JVM에서 말하는 컴파일과 코드를 실행 과정은 어떻게 이루어지는지? 긴 여정속에서 함께할 동료들은 어떤 친구들이 있는지? 복잡하고 아름다운 JVM의 내부 구조와 함께 한번 알아보자. 사실 가장 아래 래퍼런스들의 문서를 읽는 것이 더 도움이 될 것 같다. 1. JVM이란 무엇인가 ..

진호우!
binary-ho 블로그