본문 바로가기

All

(92)
[개발생각] SSS 암호화 대해서 Sharmir’s Secret Sharing 암호화 방법 있는데, 일명 트리플 S... 요즘 알고리즘 공부를 하고있어서, 생각난 암호화기술이긴한데, 생각보다 재미도 있고, 예전직장에서 이 암화화방법을 이용해서 아이디어를 냈다가, 까인적도 있어서..기억에 많이 남는다.(그런데, 왜 까였을까? ㅋ 아직도 모르겠다..) 예를 들면, "Hello Word"라는 문장을 암호화한다고 할때복호화 키를 몇개를 만들것이고, 해당 복호화키중에 몇개의 키가 있으면 복호화를 할수있는지를 미리 정해서 암호화를 할수있다. 예를 들면)평문 : 123 있다고 하자.함수: f(x)=123 + 2x + x² 암호화후 결과 값 :x=1 → 126x=2 → 131x=3 → 138 사람들에게:(1,126)(2,131)(3,138) 위..
[스터디] 알고리즘#4 - 동영상 재생기 동영상 재생기 문제 - 이것도 시간(60진법 -> 10진법) 변환잘하고, 주어진 조건 잘 계산한다음,다시 10진번 -> 60진법으로만 변환해주면 쉽게 푸는 문제이다. https://school.programmers.co.kr/learn/courses/30/lessons/340213 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr class Solution { fun solution(video_len: String, pos: String, op_start: String, op_end: String, commands: Array): String { var answer: String = "" ..
[스터디] 알고리즘#3 - 유연근무제 몇개 푼것중에 제일 쉬운문제!! 역시 글자가 많다고 두려워 하지 말자 ㅋ 문제가 하도 길어서, 풀기도 전에 겁이 났는데, 이번 문제는 난이도가 제일 낮은 문제같긴하네..포인트는 60진법(시간)에 대한 처리를 적절히 하는것!이건 그냥 문제만 잘읽어도 풀리는 문제긴하다~ 직원들이 출근 계획 시간표를 제출하고, 해당 출근 계획 시간 + 10분까지 계획대로 출근을 일주일간모두 한 직원들의 수를 구하는 문제이다! (15분정도 걸린듯) https://school.programmers.co.kr/learn/courses/30/lessons/388351 class Solution { fun solution(schedules: IntArray, timelogs: Array, startday: Int): Int { ..
[개발생각] PostgreSQL의 하이퍼테이블 사용 기존에 통계 데이터를 minute, hour, day, month등의 테이블로 나누고, 테이블에 날짜키로 Insert를 했었다... 일반적인 데이터의 크기라면 상관이 없지만, 데이터가 빅데이터 수준으로 늘어나게 되면, 여러가지 문제가 생긴다. 인덱스가 커지게 되고, 해당 인덱스을 메모리상에 올리지 못하게 될때는, 디스크 IO가 폭발적으로 발생할수있다.로우 삭제가 있는 테이블이라면, 추후에 VACUUM 오버헤드가 엄청나게 들어나게 된다.(VACUUM 작업은 그냥 디스크 정리 같은거라고 생각하면 쉽다.)삭제된 로우를 실제적으로 정리하면서, 인덱스도 지우고, 디스크도 정리하고 하는 작업인데,테이블의 데이터가 빅데이터라면, cpu 오버헤드가 상당해진다. 이런 단점을 극복하기위해서 PostgreSQL은 exte..
[스터디] 알고리즘#2 - 택배 상자 꺼내기 지렁이처럼 구불구불 데이터가 저장되는 패턴!! 배열이 왼쪽 -> 오른쪽, 오른쪽 -> 왼쪽 이렇게 번갈아가면서 저장되는 패턴...row % 2로 왼쪽 -> 오른쪽, 오른쪽 -> 왼쪽 패턴을 구분하는게 중요하다. https://school.programmers.co.kr/learn/courses/30/lessons/389478 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr class Solution { fun solution(n: Int, w: Int, num: Int): Int { var col = -1 var row = 0 var xRow = 0 var ..
[스터디] 알고리즘#1 - 노란불신호등 결국은 웬만하면, 매일 알고리즘 1문제씩은 풀어야겠다고 다짐했다.. 예전에는 프로그래머에게 알고리즘은 크게 중요하지 않다고 생각했다.실무 경험과 연차가 쌓이면서 더더욱 그런 생각이 커졌었다.알고리즘은 신입이나 주니어 개발자가 더잘하는것이라고 생각했고,실무에서는 알고리즘보다는 실무경험에서 오는 트러블슈팅의 노하우와 경험이 더 많은 도움이 될것이라고 생각했다.하지만, 최근에는 생각이 조금 바뀌었다.AI시대가 성큼 다가오고 나서, 더욱 생각이 바뀐것 같다. 알고리즘은 다양한 사고를 할수있게 해준다는것이다. 이 부분이 프로그래머에게는 상당한 도움이 된다고 생각한다. 해당 알고리즘 문제를 풀이를 보고 외우거나, AI에 질문하면서 푸는게 아닌,끝까지 내가 고민하고 생각해서 푼다는 가정하에 말이다. 이런 생각으로..
[아이디어] 16년된 게임개발 아이디어... 30살? 회사에 출근하면서 생각한 게임 아이디어였는데... 문득 생각이 났다.. 16년이 넘어서, 생각이 나다니..후 :) 30살때, 회사가 멀어서 지하철을, 1시간씩 전철을 타고 다녔다. 출근중에 음악도 듣고, 영화도 보고 했는데,결국은 눈을 감고, 이런저런 몽상을 하다가, 잠이 드는 경우도 많았다. 이때 공상속에서 생각한 게임 아이디어였는데,아예 그래픽을 배제한 사운드, 진동으로만 동작하는 게임을 만들어보면 어떨까?라는 것이였다.(음악듣는거 말고 눈감고 지하철에서 할것없나? 하다가 생각함 ㅋㅋ) 장르 :- 미스테리 동굴 탈출 시나리오 :- 출근하던 X가 갑자기 정신을 잃었고, 일어나보니, 동굴안이였다. 동굴은 빛이 없는 암흑이였고, 손끝에서 느껴지는 터치와 귀로들리는 사운드만으로 동굴을 빠져나가야..
[개발생각] 애자일방법론에 대해서.. 애자일을 모든 사람들은 이야기하지만, 정작 애자일이 무엇인지를 정확히 알고있는 사람은 많지않다...아니..없는것같기도.. IT개발에서 가장 많이 하는 방식은 프로젝트팀을 구성하고,해당 프로젝트팀에 여러 파트 (기획, 디자이너, 프론트, 서버개발등등) 인원들이 멤버가 되어,어떤 목표를 가지고 서비스를 만드는 방식을 많이 사용한다.이렇게 목적 조직을 만들고, 운영하고, 서비스가 완성되면, 다시 해체하는 과정을 반복한다. 여기서, 이런 조직을 원활하게 운영하기 위한 방법으로 애자일 방식 활용을 많이 한다. 특히 IT조직에서는... 애자일의 뜻은 "긴밀하고, 민첩한"의 뜻이다.민첩하게 움직이려면, 수행해야하는것이 가벼워야하고, 긴밀하게 움직이려면, 수행해야하는것이 계획적이고 세밀해야한다. 민첩과 긴밀함은 사실..
[개발생각] 아파치 카멜 사용 후기 아파치 카멜을 본격적으로 써봤다. 스프링배치를 사용하려고 했는데, 이런저런 이유로 아파치 카멜을 사용하게 됐고, 후기를 남겨본다 카멜 vs 스프링배치 카멜은 DSL방식의 이벤트의 흐름을 정의하고, 이벤트의 라우팅을 쉽게 해주는 여러 컴포넌트를 제공하기에, 실시간성 이벤트 처리에 적합하다. 스프링배치는 청크단위 배치사이즈단위의 롤백처리라던가 재처리등을 할수있고, 이런 기능등을 활용하여 좀더 대용량처리에 적합하게 사용할수있다는 장점이 있지만, 실시간성 처리 (즉, 실시간으로 바로바로 처리를 해야하고, 최악의 경우는 문제가 되는 데이터처리는 스킵하면서, 실시간 처리를 해야할수도있는 경우)에는 다소 무거운, 그리고 러닝커브가 많은 솔류션으로 이해했다. 내가 카멜을 도입한 부분은 위에 말한 장점을 살리기 위한..
[아이디어] 스크래핑 내재화에 도전하다 회원의 실제 거주여부를 확인하기위해서, CODEF라는 회사에서 만든 주민등록등본을 제공받는 API를 사용한다. 해당 CODEF API가 사실은 정부24 웹페이지에서 스크래핑기술을 이용하여,주민등록등본을 발급하는 방식으로 동작하는데, 가격이 사실..후덜덜하다,건당 120원정도 한다. 회원이 급격하게 늘거나, 동일 회원이 여러번 스크래핑을 수행해야하는 경우,가격이 만만치 않다.건당 120원이나 되면... 그런데 이거 인터넷 주민등록등본 발급은 무료인데...(봉이 김선달이네!!!) 그래서 이 스크래핑을 내재화하여, 추가적인 비용을 줄일수있는 방법을 없을까 생각을 해봤다.우선 스크래핑을 어떤식으로 만들어야 좋을지를 정리해 봤다. 1) 서버 스크래핑방식보다는 클라이언트 스크래핑 방식으로 구현한다. - 서..