목록강의 (12)
잡동사니
안녕하세요. yeTi입니다. 오늘은 알고리즘 공부 중 최단경로(Shortest Path)에 대해 학습한 내용을 공유하려고 합니다. 강의 : 권오흠 교수님의 2015 봄학기 알고리즘 개요 가중치 그래프에서 경로상의 모든 엣지의 가중치의 합이 가장 작은 경로 (u, v)를 찾는 방법입니다. 이전 그래프 탐색 - BFS에서 그래프에서 BFS를 활용하면 최단 경로의 길이를 구할 수 있다는 내용이 있습니다. 현재 다루는 최단경로(Shortest Path)와 차이점은 그래프에서 BFS 탐색시 찾을 수 있는 최단 경로의 길이는 엣지의 갯수이고 최단경로(Shortest Path)는 가중치의 합이라는 것입니다. 최단경로문제는 다음과 같은 유형이 있습니다. Single-source: 하나의 출발노드에서 다른 모든 노드까지..
안녕하세요. yeTi입니다. 오늘은 백기선님의 인프런 강좌 중 하나인 이펙티브 자바 완벽 공략 1부 의 완주 후기를 공유하려고 합니다. 강의 수강 계기 앞서 백기선님의 이팩티브 자바 완주 후기 를 공유 했는데요. 유튜브 버전 강의는 맛보기 버전인데 그 동안 당연하게 사용하던 코드들의 시발점부터 장단점까지 알아가는 과정이 즐거웠어서 정식으로 인프런 강의를 보게 됐습니다. 배운점 객체 생성의 시점을 관리하고 유연하게 할 수 있는 방법 생성자는 다양한 매개변수 타입을 지원하려면 많은 수의 생성자를 만들어 둬야한다는 단점과 본인의 객체 타입만 반환할 수 있다는 제한이 있습니다. 이를 좀더 유연하게 대응하게 하기 위해 static 메소드를 활용하여 객체 생성을 할 수 있는데요. 이를 정적 팩토리 메소드라고 합니다..
안녕하세요. yeTi입니다. 오늘은 백기선님의 유튜브 강좌 중 하나인 이팩티브 자바 의 완주 후기를 공유하려고 합니다. 강의 수강 계기 지난 후기 이후로 요즘 너무 기초 강좌만 보고 있나 라는 생각이 들면서, 좀 더 발전적인 다른 무언가를 해야겠다는 생각을 막연하게 가지고 있었습니다. 그러던 차에 백기선님의 지금까지 만들었던 강의들은 결국 이 강의를 만들기 위한 준비 작업이었습니다. 라는 영상이 이목을 끌었고, 궁극의 강의의 주제는 무엇일까? 라는 궁금증으로 바로 영상을 보게 되었네요. 영상에서 이펙티브 자바 Effective Java 3/E - YES24 는 모든 자바개발자에게 권장하는 필독서중 하나 이지만 모든 개발자가 소화하기는 힘든 어려운 책 이라고 하는데요. 그래서 이펙티브 자바를 주제로 강의를..
안녕하세요. yeTi입니다. 오늘은 백기선님의 스프링 강좌중 하나인 예제로 배우는 스프링 입문 의 완주 후기를 공유하려고 합니다. 강의 수강 계기 백기선님의 유튜브 동영상을 보다가 스프링을 제대로 공부했는지 5분안에 확인하는 방법 을 봤는데요. 문제가 이거였습니다. 외부 라이브러리를 사용하는 코드가 포함된 함수를 테스트하려면 어떻게 해야하는가? 단, Mock framework을 사용하지 않는다. 그래서 전 외부 라이브러리를 상속받은 mock 클래스를 구현하여 테스트 코드에 활용하는 것을 생각했습니다. (@SpyBean @MockBean 의도적으로 사용하지 않기 - 기억보단 기록을 참고) 하지만 백기선님의 해결책은 스프링에서 제공하는 IoC와 PSA를 활용해서 다음과 같이 제시합니다. 외부 클래스를 랩핑할..
안녕하세요. yeTi입니다. 오늘은 WEB2-Domain Name System (생활코딩) 을 완주한 후기를 기록하려고 합니다. 강의 수강 계기 현재 제가 블로그에 사용하는 이미지 파일들을 저장하기 위해 개인 나스를 사용하고 있는데요. HTTP로 도메인을 제공해줘서 잘 사용하고 있었습니다. 그런데 2021년 1월에 출시한 Chrome 88 부터는 모든 혼합 콘텐츠(Mixed Content) 다운로드를 차단하면서 HTTP로 제공하는 제 이미지 파일들이 크롬에서 안나오기 시작한것이죠.ㅜ 그래서 어떻게하면 HTTP로 사용하고 있는 도메인을 URL 변경없이 HTTPS로 적용할 수 있을지에 대해 고민하는중에 DNS에 대해서 먼저 알아야겠다는 생각이 들어서 강의를 정주행하게 됐습니다. 배운점 IP와 Host 인터넷..
안녕하세요. yeTi입니다. 오늘은 Java 입문 수업 (생활코딩) 을 완주한 후기를 기록하려고 합니다. 강의 수강 계기 9년넘게 자바라는 언어를 다루며 개발자라는 직업을 가져오고 있는데요. 그럼에도 자바를 잘하는가? 자바에 대해서 많이 아는가? 라는 질문에 감히 그렇다라는 대답을 할 수 없었습니다. 그래서 기회가 되면 기초 수업이라도 지속적으로 들으며 놓치고 있는 부분이 있진 않는지 점검을 하려고 합니다. 이번 생활코딩의 자바 입문 수업도 기초적인것을 놓치고 있는것이 있진 않는지 확인차 강의를 듣게 됐습니다. 배운점 객체 지향 프로그래밍 객체 지행 프로그래밍은 절차 지향 프로그래밍의 믄제를 해결하기 위해 나온 개념중 하나이다. 절차 지향 프로그래밍의 규모가 커질수록 유지보수하기가 힘들어졌고, 이를 해결..
인프런의 스프링 부트 개념과 활용 - 백기선을 수강하면서 내용을 정리하고 간단한 후기를 남깁니다. 스프링 부트 시작하기 Spring Boot Reference Documentation의 Introducing Spring Boot에 따르면 스프링 부트는 스프링기반 독립적인 어플리케이션을 쉽게 만들 수 있도록 지원한다. 스프링이나 3th 파티 라이브러리들을 최소한의 노력으로 사용할 수 있다. 스프링 부트의 목적은 다음과 같다. 스프링 개발자가 빠르고 폭넒게 개발할 수 있도록 제공한다. 기본적으로 제공하는 설정을 빠르게 수정할 수 있다. Embedded 서버나 보안, 메트릭 등과 같은 비기능적 요소들을 폭넒게 제공한다. 더 이상 XML 설정이나 코드 generation을 하지 않는다. 스프링 부트 원리 의존성..
인프런의 더 자바, 코드를 조작하는 다양한 방법 - 백기선을 수강하면서 내용을 정리하고 간단한 후기를 남깁니다. JVM 이해하기 JVM, JRE, JDK 그리고 자바 JVM은 자바 가상 머신(Java Virtual Machine)의 약자로 자바 바이트 코드(.class 파일)를 OS에 특화된 코드로 변환(인터프리터와 JIT 컴파일러)하여 실행한다. 때문에 특정 플랫폼에 종속적이다. JVM자체는 바이트 코드를 실행하는 표준이자 특정 벤더가 구현한 구현체(JVM 벤더 : 오라클, 아마존, Azul 등)이다. JRE는 자바 실행 환경(Java Runtime Environment)의 약자로 자바 어플리케이션을 실행할 수 있도록 구성된 배포판이다. JVM과 핵심 라이브러리 및 프로퍼티, 리소스를 가지고 있다. (..
인프런의 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 김영한 을 수강하면서 내용을 정리하고 간단한 후기를 남깁니다. 공감 개발자는 SQL 맵퍼다. 객체지향 설계를 할수록 맵핑작업만 늘어난다. 계층형 설계를 하더라도 결과물에 대한 신뢰를 할 수가 없다. (진한 의미의 계층 분할이 어렵다.) 가지고 있던 고민 객체지향 설계를 할때 필요없는 시점의 데이터도 조회하여야 하는가? 예) 회원 정보가 다른 정보와 연관관계를 가지고 있을때 회원 정보만 필요해도 다른 정보도 조회해서 모리에 가지고 있어야 하는가 - Proxy 활용 얻은 정보 객체의 정보를 update 할때는 객체의 정보만 변경해주면 알아서 DB에 반영된다. - Dirty Checking JPQL SQL을 추상화하여 객체기반 쿼리이다. EntityM..
안녕하세요. yeTi입니다.오늘은 K-MOOC를 활용해 강의를 들은 후기를 말해보려고 합니다. 제가 무크(MOOC)라는 플랫폼을 작년(2018년) 8월쯤 처음 알고 코세라(Coursera)와 K-MOOC에 가입하여 틈틈히 강의를 듣고 있습니다. 주로 IT 관련 강의를 듣는데요.지난달 처음으로 이화여자대학교 경영대학 경영학과에 재직중이신 신경식 교수님의 '빅데이터의 세계, 원리의 응용' 이라는 강의를 이수하여 이수증을 받았습니다. 사회 생활하는데는 별 이득이 없는 이수증이겠지만 개인적으로는 대학에서 수료증을 받은만큼 만족도가 컸습니다. 왜냐하면 강의의 내용도 충실하다고 느꼈고 트렌드에도 뒤쳐진다는 느낌도 없었고, 퀴즈나 실습 과제도 주어져서 지식이나 툴을 숙달할 수 있는 최소한의 기회도 제공해준다고 느꼈기..