절대 변하지 않는 23가지를 이야기하는 모건 하우절의 불변의 법칙 책 중 22번째 복잡함과 단순함(Trying Too Hard) 라는 내용에 대해 이야기해보려고 합니다. 사실 단순하고 간결한것으로 충분한데…
huggingface 모델들과 PEFT 라이브러리의 조합은 몇 줄의 Python 코드로 나만의 모델을 만들 수 있게 해주었습니다. 특히, PEFT(Parameter-Efficient Fine-Tuning)는 시간과 메모리를 효율적으로 사용하게 도와주며 다양한 Downstream…
우리가 자주 사용하는 카카오톡 에서는 대화 내용을 text 형태로 내보낼 수 있는 기능을 제공 합니다. 카카오톡 대화 내용으로 Language Model 을 Fine Tuning 해보면서 AI…
LLM 기반의 Application 을 개발하기 시작했다면 가장 많이 방문하는 페이지는 아마 Hugging Face 일것 같습니다. Transformer 의 등장과 이후 GPT / BERT 의 성공으로…
가트너에서는 Hype Cycle 이라는 report 를 매 년 기술별로 발행합니다. Hype Cycle 이란 기술의 성숙도를 표현하기 위한 시각적 도구로서 5단계의 phases 로 나눠서 기술 성숙도를…
속도는 느렸지만 Hard 문제를 혼자서 풀었다는점에 점수를 주는 문제입니다. https://leetcode.com/problems/maximal-rectangle 주어진 matrix 에서 1만으로 구성된 가장큰 rectangle의 넓이를 구하는 문제입니다. dp[i][j] 를 (i ,…
ChatGPT라는 최고의 Tool를 활용해 IT 개발에 관심있는 비전공자 , IT 업계에 관심이 많은 사람들을 위한 글을 작성하고 있습니다. (이전 글 : http://mukgee.com/?p=831) 이번에는 개발…
ChatGPT라는 최고의 Tool를 활용해 IT 개발에 관심있는 비전공자 , IT 업계에 관심이 많은 사람들을 위한 글을 작성하고 있습니다. (이전 글 : http://mukgee.com/?p=831) 이번에는 Java와…
사실 저도 개발 업무를 하고 있지만, 가끔 개발자들이 좀 미워보일때가 있습니다. 얼마나 비싸게 행동하는지, 그냥 내가 개발하면 되지 않을까 chatGPT 시대에 사라질 직업이 개발자라는데, 언제까지…
중요한건 꺾이지 않는 마음 이라고 하지만 Hard 문제 앞에서는 거의 항상 좌절하는것 같습니다. 아직 갈 길이 멀다는 뜻이겠지요. 이번 문제는 처음 dp 문제를 잘못…
https://leetcode.com/problems/minimum-height-trees/ 트리 문제로 처음에는 모든 노드를 dfs 로 탐색하며 가장 height 가 낮은 label 을 관리하는식으로 접근했습니다. 당연히 Time out 이 발생했고요.. O( N…
https://leetcode.com/problems/unique-binary-search-trees/ 처음 이 문제를 봤을때 backtracking 으로 가능한 node들을 모두 생성하는 방법으로 접근했습니다. 우선 left 로 갈 수 있는 numbers, right로 갈 수 있는…
https://leetcode.com/problems/maximum-product-subarray 152번 문제는 문제 자체가 전형적인 DP 문제처럼 보여서 바로 DP 로 접근했습니다. 음수 와 음수를 곱하면 양수간 된다는 점에서 규칙을 찾아서 문제를 풀었습니다.…
https://leetcode.com/problems/word-break/ 리트코드 139번 문제는 사실 Dynamic Programming(DP) 로 이 문제를 풀어야한다는걸 알면 쉬운 문제입니다. 쉽게 가고 싶어서 Related Topics 를 잠깐 확인했고 DP 로 풀수…
리트코드 1976번 문제는 그래프의 최단경로를 찾는 문제입니다. https://leetcode.com/problems/number-of-ways-to-arrive-at-destination/ “알고리즘 트레이닝”에서 그래프에서 최단 경로 구하는 방법을 3가지 소개하고 있는데요. ( 벨만-포드 알고리즘 / 다익스트라…
리트코드 207번 문제 풀이
오라클 클라우드에서 프리 티어로 개발 서버로 충분히 사용할 수 있는 서버 스펙을 제공한다는 이야기를 듣고 AWS 에서 이전했습니다. 가장 어려웠던 점은 오라클 클라우드의 계정 생성이었네요.…
아이맥에서 STS 로 개발을 해왔으나 이유는 정확히 모르겠지만 제대로 설치가 안된 상태에서 계속 application 으로 이동시킨 다음 실행해왔습니다. 다시 설치해도 해결이 안되어서 개발환경 설정에 시간을…
react 로 서비스를 구현하면서 setState 의 비동기성 때문에 많은 어려움을 겪었습니다. jquery 에 익숙해서 리액트스럽지 않은 코드 스타일이여서 그런지 구글링해도 쉽게 찾을 수 없어 정리해보려고…
Java 8에서 새롭게 사용 가능한 API로 Stream, lambda, Optional 이 있습니다. 그중 Stream 을 사용해보았던 기록을 남겨 봅니다. Stream을 사용하다보면 Python을 처음 사용했을때처럼, 코드를…
최근 롱블랙이라는 서비스를 보면서 빼기에 대해 생각해봅니다 롱블랙은 24시간 동안만 존재하는 지식 컨텐츠를 제공한다고 합니다. 가장 먼저 생각나는 서비스가 인스타그램의 스토리네요. 더 뒤로 가보면 지금도…
이전 글에 이어 AutoEncoder를 이용한 타이타닉 문제 접근의 최종 편입니다. 이전 편에서 AutoEncoder를 통해 케글에서 제공하는 타이타닉 데이터를 차원 축소해보았습니다. Bytenet의 AutoEncoder의 encoder 를 통과하면…
요즘 참 많은 고민이 있었던것 같습니다. 살이쪄서인지, 육아가 힘들어서인지 날로 불평만 늘어가고 해결할 방법을 고민하지 않았던것 같습니다. 이제 생각이 정리되고 삶이 나아가야할 방향에 대해…
우연히 고가용성의 확장 가능한 시스템 설계에 대한 공고를 보고 고가용성의 확장 가능한 시스템은 어떤 시스템인지 고민을 시작했습니다. 어떤 Application 이 특히 java engineer로서 어떤 java…
케글에서 가장 초보적인 문제 타이타닉 생존자 예측 문제(https://www.kaggle.com/c/titanic/data)를 AutoEncoder로 접근해보려고 합니다. 이 문제는 케글에서 워낙 유명한 문제이기 때문에 competition의 리더보드를 보면 score가 1입니다.(정확도 100%..) AutoEncoder로…
소스든 어떤 작업이든 이력을 남겨놓는건 중요한것 같습니다 오라클 db에서 데이터를 모을수 있는 function 을 만들어 뒀는데 삭제 하면서 생성 script를 따로 보관하지 않았더니 다시 시작하기가…
이글은 Transformer 모델(BERT/GPT 등)의 Library 인 hugging face를 활용한 generator 학습을 위한 글입니다. 모든 내용은 https://huggingface.co/blog/how-to-generate 을 참고하였습니다. 의미 있는 sequence 있는 생성을 위한 학습…
LOL 게임 데이터를 바탕으로 RNN을 이용해 18레벨까지의 skill 시퀀스를 만들어보는 작업을 하고 있습니다. 이 toy 과제의 목적은 학습된 모델이 생성하는 시퀀스가 게임의 규칙을 이해한 skill…
[M/L]LOL 데이터를 활용한 Skill 트리 학습(3) 에 이어 진행합니다. 이전 학습에서 tensorflow의 dataset api 를 이용해 dataset을 구성한 후에는 데이터를 수정하는것이 굉장히 힘든일인것을 알게 되었습니다.…
[M/L]LOL 데이터를 활용한 Skill 트리 학습(2) 에 이어 진행합니다. 기존의 N-gram 형태의 rnn 으로는 원하는 결과가 나오지 않아 Tensorflow 공식 홈페이지의 RNN Tutorial를 참고해서 진행해보았습니다.…
[M/L]LOL 데이터를 활용한 Skill 트리 학습(1)에 이어 진행합니다. 수집된 데이터 set 은 아래와 같습니다. 2번째 column의 데이터가 프로게이머들이 선택한 skill sequence 입니다. 경기에 따라 18…
LOL에서는 다양한 게임 데이터를 User 들에게 Open 하고 있습니다. 단순 유저별 승패 뿐만 아니라 피해량, 아이템 구매 이력, Skill 트리 등 여러 정보를 공유하고 있는데…
Q. 0,1로 구성된 길이 n의 비트 스트링 가준데 1이 연속하지 않는 비트 스트링의 갯수는? C(n) : 길이 n인 비트 스트링에서 1이 연속하지 않을 경우의 수…
동적 계획법은 전체 문제를 나눈 sub problems들이 각각 최적 부분해를 가지고 있어야한다. 동적 계획법을 잘 풀기 위해서는 3부분 5단계로 풀어 나가야 한다. 문제의 문맥을 이해…
–구린내 나는 코드 (응집도가 낮고 결합도가 높은 코드) 중복 코드 – 메소드 추출, 템플릿 메서드 형성, 알고리즘 전환,클래스 추출, 모듈 추출 장황한 메서드 – 메소드를…
최근 리팩토링의 필요성을 많이 느끼면서 관련된 책을 구매했습니다. 책보며 공부한 내용을 블로그에 정리해보려고 합니다. 1장 예제에서 불필요한 변수 제거, 임시 변수 제거, 자신이 사용하는 데이터와…
대부분의 프로그래밍은 논리학에 출발. 일상 생활의 문제를 논리학적 관점에서 명제로 도출하고 증명하는 연습이 중요 증명 에 관한 방법 가정이 거짓이면, 전체가 참이다 / 결론이 참이면…
n개의 원소를 가진 집합의 부분집합은 2^n 개 1<<n -> 2^n 과 동일 ex) 원소가 3개인 부분집합의 조합은 000 , 001 , 010 , 100 ,…
보이어 무어 알고리즘은 String 검색 기법 중 하나인 알고리즘이다. 컨셉 자체는 패턴 불일치의 대부분은 후반부에 발생하기 때문에 String 배열의 뒤에서 부터 검색하는것이다. 각 배열에 대한…
사다리 타기를 한다. 입력값은 100×100의 매트릭스형태이고 사다리가 연결된 곳은 1로 연결되지 않은 곳은 0으로 표현된다 최종 목적지는 2로 표현될때 각 목적지로 도착할 수 있는 시작점…
높은 곳의 상자를 낮은 곳에 옮기는 방식으로 최고점과 최저점의 간격을 줄이는 작업을 평탄화라고 한다. 평탄화를 모두 수행하고 나면, 가장 높은 곳과 가장 낮은 곳의 차이가…
문제를 요약하면 강변에 건물이 늘어서 있는데, 좌/우 로 2칸씩 공간이 있어야 조망권이 확보 되었다고 판단합니다. 입력된 값들을 순서대로 빌딩의 층수라고 할때 조망권이 확보된 층수의 합을…
최빈값을 구하는 알고리즘 출처 : https://www.swexpertacademy.com/main/learn/course/lectureProblemViewer.do#none
코딩인터뷰 완전분석 (게일 라크만 맥도웰 지음 ) 을 공부하면서 작성하는 글입니다. 알고리즘 문제를 풀기위한 설계는 5가지의 접근법이 있다. 예증 일반적 규칙을 유도해내서 문제를 해결한다. ex)…
코딩인터뷰 완전 분석이라는 책을 보면 2급수표를 먼저 외우라고 요구한다. 2의 10승 까지야 보통은 외우고 있을 테지만.. 그 후에 2의 16이 64K이고 2의 20승이 1MB 이며…
Java 8은 2014년 발표된 Java의 Version 8 이다. Java 5 이후로 Version 6, 7 도 있었지만 Version 8이 중요한 이유는 언어 자체에 변화가 있었던 버전업이기 때문이다.…
구글의 GCM(이전엔 FCM으로 불렸음)을 사용면서 GCM이 가진 많은 기능 중 Topic 메세지를 사용할 케이스가 있었다. Topic 메세지는 publish/subscribe model에 기반을 둔 push service인데, 그 과정은 아래와…
http://d2.naver.com/helloworld/206816 글에서 The Architecture of Open Source Applications 을 소개하고 있다. 해당 글은 Scalable Web Architecture and Distributed Systems 번역 해놓은 훌륭한 포스트지만, Aosabook의 다른 글들도 공부해야 겠다는 생각에 목표를…
팩토리라는 단어처럼 인스턴스를 생성해주는 팩토리(sub class)가 존재하고 새로운 객체를 원할 경우 팩토리를 통해 생성하는 패턴. Spring 프레임워크에서 자주 사용되는 패턴으로 캡슐화 , 유연성 , 느슨한 관계의…
조금 이해하는게 쉽지는 않다.(재귀 관계적 사고가 필요함) 천천히 봐보자. 먼저 위키피디아에 따르면 visitor 패턴(방문자 패턴)은 알고리즘(동작)을 객체 구조에서 분리시키기 위한 패턴이다. 이렇게 분리 하면 구조의…
프로토타입 패턴은 프로토타입(원형)을 만들어 놓고 그것을 clone 하여 사용 하는 방법이다. new 를 사용하여 객체를 생성 하는것이 비용이 크거나 , 기존의 객체와 비슷하지만 일부만 변경된…
Java Persistence API EJB에서 구현 되었던 엔티티빈을 POJO철학을 반영하여 구현한 기술. Persistence 란 어플리케이션의 데이터가 프로세스(JVM)보다 오래 지속 되는것을 말한다.(참고) 관계형 데이터베이스에서 받은 데이터를 Row단위로…
Aspect-Oriented Programming 객체 지향 프로그래밍(OOP)로 개발 하다보니 단점이 발견되었다. 분산된 중복 소스 , 소스간 의존성 증가 등등. 이런 문제를 해결하기 위해 등장한것이 AOP. “Aspect” 란…
Plain Old Java Object EJB에 반대급부로 등장한 개념. EJB는 엔터프라이즈 어플리케이션에서 필요로 하는 트랜젝션 관리, 보안 등을 처리해주었고 개발자는 비지니스 로직만 걱정할 수 있도록 도와주었다. 그러나…
자바 용어에 대해 명확히 하고 넘어 가기 위해 정리한다. #POJO 클래스 – 프레임워크에 의존(상속)하지 클래스. 프레임워크가 빠진 순수 자바 클래스. #AOP – 객체지향 프로그래밍의 단점을…
이글은 aws 201세미나(1)에서 이어지는 글입니다. EC2의 몇가지 기본 요소에 대해 알아보자 AMI(아마존 머신 이미지) 우리가 쉽게 사용하는 이미지. 하지만 aws에서 사용되는 이미지. AMI는 3가지 종류가…
aws 201 세미나를 다녀와서 배웠던 내용들을 정리. 해당 세미나에서는 주로 aws의 EC2에 대한 내용을 들을 수 있었다. 먼저 aws의 서비스를 이용하기 위해서는, region 을 선택하고…
웹사이트 최적화 방법을 구글링한 결과를 정리해본다. 도메인을 적절히 분리 DNS 정보는 브라우져에 캐쉬 되기 때문에 같은 도메일을 가진 외부 파일을 사용하면 DNS lookup 시간을 단축…
튜토리얼을 보면, jumpTo(step) { this.setState({ stepNumber: step, xIsNext: (step % 2) ? false : true, }); } 123456 jumpTo(step) { this.setState({ stepNumber: step, xIsNext: (step % 2) ?…
ES6(부르는 용어가.. ECMAScript 6라고 부르기도하고, ECMAScript 2015 , ES6 , 뭐 여튼) 에 대해 천천히 공부해보자 일단 내가 알던 Javascript 와 다른 첫번째는 변수 선언에 관한 키워드…
이 글은 https://facebook.github.io/react/tutorial/tutorial.html 의 튜토리얼을 따라해본 것이다. 환경 설정을 마쳤다면(환경 설정이 안되어 있다면 이글을 확인), https://codepen.io/ericnakagawa/pen/vXpjwZ?editors=0010 에서 starter code를 받아보자. components 밑에 app.jsx 파일을 만들어 Square , Board , Game class를 생성하여…
이번 글은 https://facebook.github.io/react/tutorial/tutorial.html 의 튜토리얼을 따라해본 것이다. Javascript 로 Jquery를 주로 사용했던 개인 경험에 비춰보면 이건 신세계다. 마치 backend에서 빌드 파이프라인을 구축하듯이 front-end 또한 파이프라인을 구축한다. (튜토리얼에…
JMH는 OpenJDK에서 만든 성능 측정용 library다 JMH를 설치하기 위해서는 Mercurial이라는 코드 저장소를 설치해야하는데(JMH가 Mercurial에 올라가 있기 때문) Mercurial은 해당 링크를 따라 설치하면 된다(간단) https://www.mercurial-scm.org/downloads Mercurial 설치 이후 hg…
해당 내용도 면접에서 언급되었던 부분이므로 정리하고 넘어간다. 사실 아파치와 nginx(엔진엑스 라고 읽는다)의 차이점에 대해 찾아본 결과 무엇인가를 정리 할만큼의 차이는 찾지 못했다. 두 웹서버의 태생이…
기술 면접시에 받았던 내용이였으므로 정리해둔다. 톰캣은 WAS 서버지만 웹서버(아파치)의 기능도 제공한다. 그럼에도 아파치를 사용하는 이유는 아파치에서 제공하는 기능들을 톰캣이 제공하지 않기 때문이다. (아파치만의 기능이라함은.. 1.…
Functional Interface Java 8 이후로 지원하는 기능으로 Interface 중 단 하나의 abstract method 를 가지는 interface이다. 자바는 기본적으로 First class Object Oriented Language 인데, functional interface의 등장으로…
자바는 개발자가 메모리를 명시적으로 해지 하지 않고 GC가 더 이상 사용하지 않는 객체에 대해 메모리를 해지 하는 작업을 진행한다. GC에 대해 이해하기 위해서는 자바의 메모리…
Java 캐쉬 엔진인 EHCache. 기본적으로 웹어플리케이션에서 캐쉬는 HTTP의 캐시 , View 레이어 캐쉬(HTML, xml, Json등의 캐쉬) , 비지니스 로직 캐쉬(메소드 캐싱 등) , DB 캐쉬가…
주말동안 심심해서 친구 따님의 갤러리를 만들어봤다 몹시 심심한 갤러리 http://gaeun.site88.net/
http://navercast.naver.com/magazine_contents.nhn?rid=2045&attrId=&contents_id=117284&leafId=1360 네이버를 보다가 “여행을 기억하는 6가지 방식“이라는 제목의 글에 이끌려 위의 글을 읽게 되었다. 나는 여행을 어떻게 기억 하고 있을까? 사진? 냄새? 우편? 나는 공기라고…
한국에선 SI회사 중 꽤나 큰 회사에서 2년간 웹 개발자로 일했다. 취업 후에 Java 등의 언어를 처음 공부했고 2년간 in-house system을 개발하는 일을 했다. 스킬셋은 풀…
수영 – 25m 왕복 7바퀴 …-> 케틀벨 도착
Development Experience LG Ethics Web application Worked as web developer ( javascript, jquery, JSP ) :: page Web Presentaion for AngularJS study Built simple web page using AngularJs directive.…
자바스크립트를 공부중이다. 자바스크립트는 scope 에 대해 다른 언어들과 다른 특징을 가지는데 먼저 유효범위에 있어서 블럭 범위가 아닌 함수 범위이다. 중복된 변수명의 경우 현재 실행문맥의 활성화…
자바스크립트 Array 내장 함수중 유용한것 몇가지를 적어놓는다. JavaScript var arry = [“a”,”b”,”c”]; var flag = true; for(var inx = 0 ; inx < arry.length; inx++){…
JavaScript /* getElementsByClassName 을 IE8 이하에서 동작하게 하는 코드 */ if (!document.getElementsByClassName) { document.getElementsByClassName = function (cn) { var rx = new RegExp(“(?:^|\\s)” + cn+…
참 좋은 강의이다. 문제가 아직 남았지만 교수님이 하는 강의자체는 다 들은 시점에서 참 좋은 강의라고 느낀다. 이 강의를 따라 가면서 전산과 출신이 아닌 사람으로써 Computational Thinking…
13강은 데이터 구조 중 트리에 관한 강의이다. 트리 구조는 쉽다. root가 있고 자식이 있고 각각의 step을 노드로 부른다. 하지만 트리구조는 list 나 dictionary 처럼 key…
CSS는 참 어렵다 근데 디자인이 전부인 것처럼 느껴지기도 해서 열심히 해보려고 하지만 잘안된다. 오늘 했던 고생을 기록한다 <div> <table></table><table><table> </div> 이렇게 있을때 div 안의 table을…
시스템을 만들다보면 모듈화에 대한 고민을 할 때가 있다.(말단 개발자지만…) 똑같은 코드를 사용하는데 계속해서 그 코드를 복사 붙여 넣는다면 나중에 수정되면 붙어넣은 수만큼 찾아서 수정해야 된다.…
파이썬에서는 다른 언어에서 제공하는 for문 기능 외에 다양한 기능들을 제공한다 그 중 for .. else 문에 대해 소개해본다 기본적으로 for문 에 break 가 포함 되어…
객체 지향 프로그래밍에 관한 이야기이다. 상속이 나오고 부모 클래스와 자식 클래스간의 오버로딩의 경우 어떤게 실행되는가에 대해서도 나온다 영어가 부족해서 문제가 잘 이해가 안되서 못풀고 있는데…
week5 – lecture 10 Search 알고리즘에 관한 강의이다 먼저 Simple한 방법이 소개되는데 search를 위해서 주어진 L(L은 list라고 가정한다)의 길이만큼 for문을 돌면서 일치하는 것이 존재하는지 찾는…
Week 5 시간 복합도에 관한 강의였다. 시간 복합도는 프로그램이 실행되는 시간에만 집중한 것으로 Input에 따라 Best Case, Worst Case, Average Case로 계산 될 수 있다. 이후…
@ 이 글은 http://programmingsummaries.tistory.com/108 를 참고하였습니다. 배열의 최대값 최소값 을 구하기 위해서 javascript 내장 함수인 Math.max를 사용한다 JavaScript var list =[1,2,3,4]; var max = Math.max.apply(null,list); var min…
구글 검색 엔진에 등록하고 나니 네이버도 생각나더라 그래서 네이버 검색 엔진에도 등록해보자 네이버 웹마스터 페이지 방문 http://webmastertool.naver.com/tools/dashboard.naver 구글 웹마스터 페이지랑 비슷한 느낌이다. 해당 주소를 입력한…
@ 이 글은 http://itsanta.tistory.com/12 의 글을 참고하였습니다. 블로그에는 내 블로그를 구글에서 검색하고 싶어질때가 있다. 물론 지금은 들어오는 사람도 없고 검색하는 사람도 없겠지만 언젠가 유명한 블로그가 되기를 꿈꾸면서…
JavaScript IE8에서Map function 사용하기”](function(fn){ if (!fn.map) fn.map=function(f){var r=[];for(var i=0;i<this.length;i++)if(this[i]!==undefined)r[i]=f(this[i]);return r} if (!fn.filter) fn.filter=function(f){var r=[];for(var i=0;i<this.length;i++)if(this[i]!==undefined&&f(this[i]))r[i]=this[i];return r} })(Array.prototype); 1234 IE8에서Map function 사용하기”](function(fn){ if (!fn.map) fn.map=function(f){var r=[];for(var i=0;i<this.length;i++)if(this[i]!==undefined)r[i]=f(this[i]);return…