Skip to main content

Posts

첫번째 Vibe Coding 앱. drillquiz.com

 나는 vibe coding 으로 코드 한 줄 쓰지 않고 한 달 반 만에 이 앱을 만들었다. https://drillquiz.com 인터뷰 준비를 위해서 내가 평소에 하던 준비 과정을 앱에 담으려고 노력했다. 이 앱에서 내가 만들고자 했던 기능은 이런 것들이다. 🎯 첫째, 기억 관리 (Retention 기능, 이름을 Drain 으로 바꿀까 싶다 ^^) 나는 면접 준비를 하다 보면, 며칠 전에 본 문제도 금방 잊어버리는 경험을 자주 했다. 그래서 앱이 나 대신 내가 언제 무엇을 잊어버릴지 추적하고, 적절한 시점에 다시 문제를 보여주도록 설계했다. 시간이 지나면 맞췄던 문제의 통계를 지우도록 설계했다. 결국 "내가 잊어버리는 걸 앱이 기억한다"는 개념이 핵심이 됐다. 매일 많이 틀린 문제를 이메일로 보내준다. 🌍 둘째, 언어 장벽 없는 학습 나는 한국어로 정리하는 습관이 있지만, 글로벌 면접이나 해외 스터디에 참여할 땐 영어가 필요했다. 그래서 한국어로 입력하면 앱이 자동으로 영어로 변환해주는 기능을 넣었다. 내 의도는 단순했다. “언어는 학습의 장벽이 되면 안 된다.” 👥 셋째, 협업 학습과 동기부여 혼자 준비하는 것도 중요하지만, 스터디 그룹에서 서로 진도를 확인하고 피드백을 주는 게 큰 도움이 된다. 그래서 개인 성과뿐 아니라 스터디 팀 전체 성과를 추적할 수 있는 스터디 보드 를 만들었다. 스터디 -> 과제 -> 문제 📊 넷째, 데이터로 보는 학습 과정 나는 늘 "내가 얼마나 준비됐을까?"라는 불안을 안고 있었다. 그래서 문제 정답률, 시도 횟수, 최근 성과를 데이터로 보여주는 학습 분석 기능 을 추가했다. 숫자와 그래프가 말해주는 성과는 막연한 불안을 줄이고, 구체적인 목표를 세우게 해준다. 결국 이 앱은 내가 인터뷰를 준비하면서 필요하다고 느꼈던 것들을 시스템화한 결과물 이다. 아래는 첫번째 vibe coding 프로젝트의 흔적이다. 아직은 프로그래머가 아니면 만들수 ...
Recent posts

Amazon RDS Blue/Green Deployments

In order to avoid some errors I experienced when proceeding as described in the official documentation, I describe what I did in order. 1) Modify parameters of source_database * error: Blue Green Deployments requires cluster parameter group has binlog enabled. RDS Parameter groups: source-params-group binlog_format => MIXED mysql> show global variables like 'binlog_format'; 2) Insert a row after rebooting the source database, to avoid this error. * error: Correct the replication errors and then switch over. Read Replica Replication Error - IOError: 1236, reason: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file' => To Fix: You need to change the data in the source database. INSERT INTO dummy_table ( `favorite_id` , `favorite_order` , `user_id` , `board_id` ) VALUES ('100001', '1', '11111', '11111'); 3) Modify the param...

Running out of Private IP in EKS

  In particular, there are cases where the pending state persists despite not running out of CPU or memory. There is a case that it is due to lack of private ip.If the node group is shown as "Degraded" in the EKS cluster configuration and you can see the following error in Health issues. "Amazon Autoscaling was unable to launch instances because there are not enough free addresses in the subnet associated with your AutoScaling group(s)." And you can see that the number of "Available IP4 addresses" in the AWS VPC subnet used in the node group is 0. By designating the IP that the node group occupies, you can get some IPs back. kubectl set env -n kube-system daemonset/aws-node MINIMUM_IP_TARGET=10 WARM_IP_TARGET=2 kubectl get daemonset -n kube-system aws-node -o json | jq -r '.spec.template.spec.containers[] |select ( .name == "aws-node" ).env' You can see that the number of "Available IP4 addresses" in the AWS VPC subnet is increa...

Free SSL Certificate & Basic Authentication with Certbot & Nginx

1. make a folder  mkdir -p /var/www/html/.well-known/acem-challenge 2. change nginx setting for getting auth files  vi /etc/nginx/sites-enabled/default  location /.well-known {    root /var/www/html;    allow all;  } nginx -s stop nginx 3. generate auth files cd /usr/local/bin  * https://certbot.eff.org/all-instructions/ wget https://dl.eff.org/certbot-auto chmod +x certbot-auto certbot-auto certonly -a webroot --webroot-path=/var/www/html -d nagios.topzone.com * certbot-auto certonly -a webroot --webroot-path=/var/www/html -d ldap.topzone.com -d ganglia.topzone.com -d nagios.topzone.com Do you want to continue? [Y/n] y Enter email address: doogee323@gmail.com (A)gree/(C)ancel: A (Y)es/(N)o: N IMPORTANT NOTES:   - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/nagios.topzone.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/...

실리콘밸리 구직 체험기3_201704 - 아직도 진행 중...

혼돈의 시간을 보내고 이제야 안정을 찾게 되었습니다. 3주전 팀장이 회사를 나가고 디렉터는 revenue를 갉아 먹던 우리팀을 정리할 절호의 기회를 잡았다는 듯이 팀원들에게 4주의 시간을 줄 테니 다른 곳을 알아보라고 통보했습니다. 그 얘기를 듣고 며칠 안되서 시민권이 있는 다른 팀원들은 호기롭게도(? 아무런 걱정도 없이) 휴가를 내고 자리를 비웠습니다. 저만 남아서 사내 다른 팀으로 transfer할 수 있는지 알아보고 linkedIn에도 구직상태로 변경했습니다. 디렉터도 제 상황을 알기 때문에 영주권 진행에 문제가 덜 발생할 만한 규모 있는 회사를 알아보라는 조언을 했고 그 조언을 따라 규모가 큰 회사를 대상으로 apply했습니다. 이번에는 링크드인으로만 apply를 하고 메일을 보냈는데도 연락이 참 많이 왔습니다. (apply한 회사 중에서 연락이 없던 곳은 facebook, uber 정도를 빼고는 다 통화를 했네요.) 한국에서 왔을 때와 스타트업에서 옮길 때와는 또 다른 반응이였습니다. 아마도 규모 있는 현 회사에서 구직을 해기 때문에 상황이 바뀐 것 같았습니다. 그런데 그렇게 많이 연락을 받았는데도 기술 인터뷰를 통과하지 못한 나를 보면서 속이 타들어갔습니다. 사내 팀에서도 코딩인터뷰를 했었는데 비교적 쉬운 것도 풀지 못하고, 게다가 그 자리가 principal 자리인 지라 저를 인터뷰하는 개발자가 어처구니 없다는 듯이 돌아설 때에는 정말 초라하고 답답한 마음이 밀려 왔습니다. 제게 이번 경험의 특징은 크게 2가지 입니다. 1. on-site coding / assignment on-site coding 또는 assignment 가 많았다는 것인데 준비가 제대로 되지 않은 저는 한 군데도 통과를 하지 못했습니다. linkedIn -> on-line coding citrix -> on-line coding vmware -> on-line coding (quiz) Salesforce -> on-line coding S...

DevOps JD's required skills from LinkedIn

From some of DevOps JD on linkedIn, I realised that DeveOps should be the leader of the organization. https://docs.google.com/spreadsheets/d/1P520nH0pYcAdN0rJcnMQqsgu9cV9GdknztJ92J8l7-s/pubhtml DevOps' Required Skills From LinkedIn on 8/30/16: DevOps should be the leader of the company! Yahoo Netflix Samsung Salesforce Fortinet SUM OS admin UNIX systems Unix platforms Linux administrator Linux VMs Docker VMs VMware, OpenStack, Hyper-V Openstack, KVM, VMWare Version control version control systems Git, SVN Cloud Amazon AWS AWS AWS, Azure DB MySql Oracle, MySQL, NoSQL Mysql administration and strong command of SQL MySQL RabbitMQ MySql, MongoDB, Redis, Oracle, ProgreSQL N/W TCP/IP networking, DNS, HTTP NAS Understanding of network stack, network tuning, subnet/VLANs. HAProxy, DNS, IPTable Script Lang Shell, Perl, Python, Ruby, PHP bash Python, Bash/tcsh a scripting language: Perl, Python and Unix Shell preferred Python, Perl, Ruby Python, Ruby, Shell, PHP Web LAMP stack...

Install CoreOs on linode without VM

Install CoreOs on linode without VM 1. Add a Linode 2. Create a new Disk   CoreOS 3. Rescue > Reboot into Rescue Mode 4. Remote Access   Launch Lish Console 5. make an install script cat <<'EOF1' > install.sh # add needed package sudo apt-get update sudo apt-get install -y curl wget whois sudo apt-get install -y ca-certificates #sudo apt-get install gawk -y # get discovery url discoveryUrl=`curl https://discovery.etcd.io/new` # write cloud-config.yml cat <<EOF2 > cloud-config.yml #cloud-config users:   - name: core     groups:       - sudo       - docker coreos:   etcd:     name: node01     discovery: $discoveryUrl hostname: node01 EOF2 # get the coreos installation script #wget https://raw.github.com/coreos/init/master/bin/coreos-install wget https://raw.githubusercontent.com/coreos/init/master/bin/coreos-install # run installation chmod 75...