-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontent.json
More file actions
2087 lines (2087 loc) · 76.5 KB
/
Copy pathcontent.json
File metadata and controls
2087 lines (2087 loc) · 76.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"meta": {
"updated_at": "2026-09-22",
"default_locale": "ko",
"locales": [
"ko",
"ja",
"en"
],
"site_title": {
"ko": "김승환 | 인프라 · 클라우드 엔지니어",
"ja": "キム・スンファン | インフラ・クラウドエンジニア",
"en": "Seunghwan Kim | Infrastructure & Cloud Engineer"
},
"description": {
"ko": "AWS 라이브 운영부터 레지스터 수준 임베디드까지, 구현과 운영의 증거를 모은 포트폴리오.",
"ja": "AWSライブ運用からレジスタレベルの組み込み開発まで、実装と運用の実績をまとめたポートフォリオ。",
"en": "A portfolio of implementation and operations evidence, from live AWS operations to register-level embedded systems."
},
"sections": {
"live": {
"ko": "라이브 서비스",
"ja": "ライブサービス",
"en": "Live Service"
},
"experience": {
"ko": "경력",
"ja": "経歴",
"en": "Experience"
},
"projects": {
"ko": "프로젝트",
"ja": "プロジェクト",
"en": "Projects"
},
"awards": {
"ko": "수상 · 선정",
"ja": "受賞・選定",
"en": "Awards & Selections"
},
"activities": {
"ko": "교육 · 활동 · 오픈소스",
"ja": "教育・活動・オープンソース",
"en": "Education, Activities & Open Source"
},
"skills": {
"ko": "기술 스택",
"ja": "技術スタック",
"en": "Technical Skills"
},
"education": {
"ko": "학력 · 자격",
"ja": "学歴・資格",
"en": "Education & Credentials"
},
"contact": {
"ko": "연락",
"ja": "連絡先",
"en": "Contact"
},
"repositories": {
"ko": "대표 저장소",
"ja": "主なリポジトリ",
"en": "Selected Repositories"
}
},
"category_labels": {
"all": {
"ko": "전체",
"ja": "すべて",
"en": "All"
},
"cloud": {
"ko": "클라우드 · 인프라",
"ja": "クラウド・インフラ",
"en": "Cloud & Infrastructure"
},
"embedded": {
"ko": "임베디드 · 온디바이스",
"ja": "組み込み・オンデバイス",
"en": "Embedded & On-device"
},
"backend": {
"ko": "백엔드 · 분산시스템",
"ja": "バックエンド・分散システム",
"en": "Backend & Distributed"
},
"ai-data": {
"ko": "AI · 데이터",
"ja": "AI・データ",
"en": "AI & Data"
}
},
"ui": {
"view_live": {
"ko": "라이브 서비스 보기",
"ja": "ライブサービスを見る",
"en": "View live service"
},
"view_code": {
"ko": "코드 보기",
"ja": "コードを見る",
"en": "View code"
},
"view_demo": {
"ko": "시연 보기",
"ja": "デモを見る",
"en": "View demo"
},
"details": {
"ko": "상세 보기",
"ja": "詳細を見る",
"en": "View details"
},
"present": {
"ko": "현재",
"ja": "現在",
"en": "Present"
},
"live": {
"ko": "운영 중",
"ja": "運用中",
"en": "Live"
},
"fork": {
"ko": "포크 저장소",
"ja": "フォークリポジトリ",
"en": "Fork"
},
"original": {
"ko": "원본 저장소",
"ja": "オリジナルリポジトリ",
"en": "Original repository"
},
"close": {
"ko": "닫기",
"ja": "閉じる",
"en": "Close"
}
}
},
"profile": {
"name": {
"ko": "김승환",
"ja": "キム・スンファン",
"en": "Seunghwan Kim"
},
"romanized_name": "KIM, SEUNGHWAN",
"title": {
"ko": "인프라 · 클라우드 엔지니어",
"ja": "インフラ・クラウドエンジニア",
"en": "Infrastructure & Cloud Engineer"
},
"headline": {
"ko": "AWS 라이브 운영부터 레지스터 수준 임베디드까지",
"ja": "AWSライブ運用からレジスタレベルの組み込み開発まで",
"en": "From live AWS operations to register-level embedded systems"
},
"summary": {
"ko": "Java와 Spring Boot 기반 백엔드, Terraform 기반 클라우드 인프라, STM32 레지스터 제어를 프로젝트와 운영 환경에서 구현. 문제를 코드·인프라·하드웨어 경계에서 추적하고 재발하기 어려운 구조로 개선.",
"ja": "Java/Spring Bootバックエンド、Terraformによるクラウド基盤、STM32のレジスタ制御をプロジェクトと運用環境で実装。問題をコード・インフラ・ハードウェアの境界まで追跡し、再発しにくい構造へ改善。",
"en": "Built Java and Spring Boot backends, Terraform-managed cloud infrastructure, and STM32 register-level control in projects and live environments. Traces failures across software, infrastructure, and hardware boundaries, then removes their structural causes."
},
"location": {
"ko": "대한민국 대전",
"ja": "韓国・大田",
"en": "Daejeon, South Korea"
},
"education_summary": {
"ko": "한동대학교 전자공학 · 컴퓨터공학 전공, 2026.02 졸업",
"ja": "韓東大学校 電子工学・コンピュータ工学専攻、2026年2月卒業",
"en": "B.S. studies in Electrical Engineering and Computer Science, Handong Global University, graduated February 2026"
}
},
"live_service": {
"id": "micemore",
"name": "MICEMore",
"url": "https://m.micemore.com/",
"status": {
"ko": "AWS 서울 리전 운영 중",
"ja": "AWSソウルリージョンで運用中",
"en": "Live in the AWS Seoul Region"
},
"tagline": {
"ko": "AI 기반 MICE 통합 인터랙션 서비스",
"ja": "AIベースのMICE統合インタラクションサービス",
"en": "AI-powered integrated interaction service for MICE events"
},
"role": {
"ko": "개발 팀장 · 개발 인력 1명",
"ja": "開発リーダー・開発担当1名",
"en": "Development Lead · Sole Developer"
},
"summary": {
"ko": "백엔드 전량과 AWS 인프라·배포를 단독 담당하고 라이브 서비스를 운영.",
"ja": "バックエンド全体とAWSインフラ・デプロイを単独で担当し、ライブサービスを運用。",
"en": "Solely responsible for the complete backend, AWS infrastructure, deployment, and live operations."
},
"evidence": [
{
"ko": "Terraform으로 인프라를 코드로 관리",
"ja": "Terraformでインフラをコードとして管理",
"en": "Infrastructure managed as code with Terraform"
},
{
"ko": "GitHub Actions에서 빌드·테스트 검증 후 배포",
"ja": "GitHub Actionsでビルド・テストを検証後にデプロイ",
"en": "Deployment through GitHub Actions after build and test validation"
},
{
"ko": "AWS 서울 리전 라이브 운영",
"ja": "AWSソウルリージョンでライブ運用",
"en": "Live operations in the AWS Seoul Region"
},
{
"ko": "장애 감지 시 AI가 원인 분석 초안을 작성하고, 사람이 검토해 PR로 반영. 자동 배포는 하지 않음",
"ja": "障害検知時はAIが原因分析のドラフトを作成し、人がレビューしてPRに反映。自動デプロイは行わない",
"en": "On incident detection an AI drafts the root-cause analysis; a person reviews it and applies it through a pull request. Nothing deploys automatically"
}
],
"technologies": [
"AWS",
"Terraform",
"GitHub Actions"
],
"architecture": {
"title": {
"ko": "MICEMore 운영 구성 보기",
"ja": "MICEMoreの運用構成を見る",
"en": "View the MICEMore operating setup"
},
"caption": {
"ko": "공개용으로 일반화한 구성도입니다. 서브넷 구조, 탐지·알림 스택, 내부 식별자와 운영 자동화 경로는 포함하지 않습니다.",
"ja": "公開用に一般化した構成図です。サブネット構成、検知・通知スタック、内部識別子、運用自動化の経路は含みません。",
"en": "A generalized diagram prepared for publication. Subnet layout, the detection and alerting stack, internal identifiers, and automation paths are excluded."
},
"labels": {
"users": {
"ko": "이용자",
"ja": "利用者",
"en": "Users"
},
"app": {
"ko": "애플리케이션",
"ja": "アプリケーション",
"en": "Application"
},
"database": {
"ko": "데이터베이스",
"ja": "データベース",
"en": "Database"
},
"region": {
"ko": "AWS 서울 리전",
"ja": "AWSソウルリージョン",
"en": "AWS Seoul Region"
},
"zone_a": {
"ko": "가용영역 A",
"ja": "アベイラビリティゾーン A",
"en": "Availability Zone A"
},
"zone_b": {
"ko": "가용영역 B",
"ja": "アベイラビリティゾーン B",
"en": "Availability Zone B"
},
"balancer": {
"ko": "로드 밸런서",
"ja": "ロードバランサー",
"en": "Load balancer"
},
"pipeline": {
"ko": "빌드 · 테스트 검증",
"ja": "ビルド・テスト検証",
"en": "Build and test validation"
},
"provision": {
"ko": "인프라 프로비저닝",
"ja": "インフラのプロビジョニング",
"en": "Infrastructure provisioning"
}
}
}
},
"stats": [
{
"value": "261,934 → 246,980",
"label": {
"ko": "논문 수집 → 정제",
"ja": "論文収集 → 精製",
"en": "Papers collected → curated"
}
},
{
"value": "200+",
"label": {
"ko": "고객 테스트 이슈 처리",
"ja": "顧客テスト課題を対応",
"en": "Customer test issues resolved"
}
},
{
"value": "70",
"label": {
"ko": "GitHub 공개 저장소",
"ja": "GitHub公開リポジトリ",
"en": "Public GitHub repositories"
},
"source": "GitHub API"
}
],
"experience": [
{
"id": "micemore",
"period": {
"start": "2026-05",
"end": null,
"display": {
"ko": "2026.05 ~ 현재",
"ja": "2026.05〜現在",
"en": "May 2026 – Present"
}
},
"organization": {
"ko": "마이스모어 (MICEMore)",
"ja": "MICEMore(マイスモア)",
"en": "MICEMore"
},
"role": {
"ko": "창업팀 개발 팀장",
"ja": "創業チーム 開発リーダー",
"en": "Development Lead, Founding Team"
},
"summary": {
"ko": "개발 인력 1명으로 백엔드 전량과 AWS 인프라·배포를 단독 담당하고 서울 리전 라이브 운영.",
"ja": "開発担当1名としてバックエンド全体とAWSインフラ・デプロイを単独で担当し、ソウルリージョンでライブ運用。",
"en": "Solely responsible for the complete backend, AWS infrastructure, deployment, and live operations in the Seoul Region."
},
"links": [
{
"label": {
"ko": "라이브 서비스",
"ja": "ライブサービス",
"en": "Live service"
},
"url": "https://m.micemore.com/"
}
]
},
{
"id": "pseudo-lab",
"period": {
"start": "2026-02",
"end": "2026-08",
"display": {
"ko": "2026.02 ~ 2026.08",
"ja": "2026.02〜2026.08",
"en": "February – August 2026"
}
},
"organization": {
"ko": "가짜연구소 (Pseudo Lab)",
"ja": "Pseudo Lab",
"en": "Pseudo Lab"
},
"role": {
"ko": "LLM for Science 오픈소스 연구",
"ja": "LLM for Science オープンソース研究",
"en": "LLM for Science Open-source Research"
},
"summary": {
"ko": "Semantic Scholar 논문 261,934건을 수집하고 3단계 검증을 거쳐 246,980건으로 정제.",
"ja": "Semantic Scholarの論文261,934件を収集し、3段階の検証を経て246,980件に精製。",
"en": "Collected 261,934 Semantic Scholar papers and curated them to 246,980 through a three-stage validation pipeline."
}
},
{
"id": "pusan-national-university",
"period": {
"start": "2026-01",
"end": "2026-02",
"display": {
"ko": "2026.01 ~ 2026.02",
"ja": "2026.01〜2026.02",
"en": "January 2026 – February 2026"
}
},
"organization": {
"ko": "부산대학교 정보화혁신본부",
"ja": "釜山大学校 情報化革新本部",
"en": "Pusan National University, Office of Information Innovation"
},
"role": {
"ko": "계약직 · 대학회계",
"ja": "契約職員・大学会計",
"en": "Contract Staff"
},
"summary": {
"ko": "학사 시스템 데이터 품질 개선, 산지니 AI 활용도 분석과 개선안 도출, AI 공모전 운영, 외부 솔루션 도입 검토.",
"ja": "学事システムのデータ品質改善、Sanjini AIの利用分析と改善案策定、AIコンテスト運営、外部ソリューション導入検討。",
"en": "Improved academic-system data quality, analyzed usage of the Sanjini AI service, proposed improvements, operated an AI contest, and evaluated external solutions."
}
},
{
"id": "hubiz-ict",
"period": {
"start": "2025-10",
"end": "2025-12",
"display": {
"ko": "2025.10 ~ 2025.12",
"ja": "2025.10〜2025.12",
"en": "October 2025 – December 2025"
}
},
"organization": {
"ko": "휴비즈아이씨티",
"ja": "Hubiz ICT",
"en": "Hubiz ICT"
},
"role": {
"ko": "풀스택 개발자 인턴",
"ja": "フルスタック開発インターン",
"en": "Full-stack Developer Intern"
},
"summary": {
"ko": "KISTI smartK2C 차세대 업무시스템 신규 개발. DB 설계부터 화면 연동까지 End-to-End 구현하고 고객 테스트 이슈 200건 이상 처리.",
"ja": "KISTI smartK2C次世代業務システムを新規開発。DB設計から画面連携までEnd-to-Endで実装し、顧客テスト課題200件以上に対応。",
"en": "Developed the next-generation KISTI smartK2C business system end to end, from database design to UI integration, and resolved more than 200 customer test issues."
}
},
{
"id": "likelion",
"period": {
"start": "2024-01",
"end": "2025-08",
"display": {
"ko": "2024.01 ~ 2025.08",
"ja": "2024.01〜2025.08",
"en": "January 2024 – August 2025"
}
},
"organization": {
"ko": "멋쟁이사자처럼 대학",
"ja": "LIKELION University",
"en": "LIKELION University"
},
"role": {
"ko": "13기 운영진 · 백엔드 멘토",
"ja": "第13期運営・バックエンドメンター",
"en": "13th Cohort Organizer & Backend Mentor"
},
"summary": {
"ko": "신입 기수 백엔드 교육과 해커톤 준비 지원.",
"ja": "新規メンバー向けバックエンド教育とハッカソン準備を支援。",
"en": "Taught backend development to new members and supported hackathon preparation."
}
}
],
"featured_projects": [
{
"id": "micemore",
"categories": [
"cloud",
"backend"
],
"name": {
"ko": "MICEMore — AI 기반 MICE 통합 인터랙션 서비스",
"ja": "MICEMore — AIベースのMICE統合インタラクションサービス",
"en": "MICEMore — AI-powered MICE Interaction Service"
},
"period": {
"start": "2026-05",
"end": null,
"display": {
"ko": "2026.05 ~ 현재",
"ja": "2026.05〜現在",
"en": "May 2026 – Present"
}
},
"role": {
"ko": "개발 팀장 · 개발 인력 1명",
"ja": "開発リーダー・開発担当1名",
"en": "Development Lead · Sole Developer"
},
"summary": {
"ko": "백엔드 전량과 AWS 인프라·배포를 단독 담당하고 서울 리전에서 라이브 서비스 운영.",
"ja": "バックエンド全体とAWSインフラ・デプロイを単独で担当し、ソウルリージョンでライブサービスを運用。",
"en": "Solely responsible for the complete backend, AWS infrastructure, deployment, and live operations in the Seoul Region."
},
"highlights": [
{
"ko": "Terraform으로 인프라를 코드로 관리하고, GitHub Actions에서 빌드·테스트 검증을 통과한 것만 두 개의 가용영역에 배포",
"ja": "Terraformでインフラをコードとして管理し、GitHub Actionsの検証を通過したものだけを2つのアベイラビリティゾーンへデプロイ",
"en": "Infrastructure as code with Terraform, deploying only what passes GitHub Actions validation across two availability zones"
},
{
"ko": "NFC 태깅 응답 경로를 AI 처리와 분리해, AI가 느려져도 태깅 자체는 지연되지 않도록 설계",
"ja": "NFCタギングの応答経路をAI処理から分離し、AIが遅延してもタギング自体は遅れない設計に",
"en": "Separated the NFC tap response path from AI processing so a slow model never delays the tap itself"
},
{
"ko": "AI 도슨트가 모델이 생성한 문장을 그대로 내보내지 않는 구조로 설계해 환각을 차단",
"ja": "AIドーセントがモデルの生成文をそのまま出さない構造にし、ハルシネーションを遮断",
"en": "Designed the AI docent so no model-written sentence reaches a visitor, removing hallucination as a failure mode"
},
{
"ko": "대화 상태를 저장하지 않는 설계로 다수 동시 응대를 수평 확장만으로 처리",
"ja": "対話状態を保持しない設計により、多数の同時応対を水平スケールのみで処理",
"en": "Kept the docent stateless, so many simultaneous visitors are handled by scaling out alone"
},
{
"ko": "한국어·영어·일본어를 지원하고, 번역문은 사람이 승인한 뒤에만 발행",
"ja": "韓国語・英語・日本語に対応し、翻訳文は人の承認を経てから公開",
"en": "Serves Korean, English and Japanese, with translations published only after a human approves them"
},
{
"ko": "개막 피크를 가정한 부하 테스트에서 720 rps를 5분간 유지해 214,900건을 처리하고 5xx 0건 확인, 쓰기 경로 p95 115ms",
"ja": "開幕ピークを想定した負荷試験で720 rpsを5分間維持し214,900件を処理、5xx 0件を確認。書き込み経路のp95は115ms",
"en": "Held 720 rps for five minutes in a peak-opening load test: 214,900 requests, zero 5xx, and a 115 ms p95 on the write path"
},
{
"ko": "같은 테스트에서 오토스케일 확장·축소가 실제로 동작함을 확인하고, 확장 완료까지 약 4분이 걸려 개막 순간의 급증에는 늦다는 한계를 기록",
"ja": "同テストでオートスケールの拡張・縮小が実際に動作することを確認し、拡張完了まで約4分かかり開幕直後の急増には間に合わない限界を記録",
"en": "Confirmed autoscaling out and back in during the same test, and recorded that scale-out takes about four minutes — too slow for the opening surge"
}
],
"technologies": [
"AWS",
"Terraform",
"GitHub Actions"
],
"links": [
{
"label": {
"ko": "라이브 서비스",
"ja": "ライブサービス",
"en": "Live service"
},
"url": "https://m.micemore.com/"
}
]
},
{
"id": "vehicle-diagnostics-r300",
"categories": [
"embedded"
],
"name": {
"ko": "차량 부품 상태 진단 시스템 (R300)",
"ja": "車両部品状態診断システム(R300)",
"en": "Vehicle Component Condition Monitoring System (R300)"
},
"period": null,
"role": {
"ko": "팀 프로젝트 · STM32 수집·통신 담당",
"ja": "チームプロジェクト・STM32データ収集/通信担当",
"en": "Team Project · STM32 Data Acquisition & Communications"
},
"summary": {
"ko": "HAL과 RTOS 없이 STM32F411 레지스터를 직접 설정하고, 고속 센서 수집·통신과 2-MCU 안전 구조 구현.",
"ja": "HAL/RTOSを使わずSTM32F411のレジスタを直接設定し、高速センサー収集・通信と2-MCU安全構成を実装。",
"en": "Configured STM32F411 registers directly without HAL or an RTOS, implementing high-rate sensor acquisition, communications, and a two-MCU safety structure."
},
"highlights": [
{
"ko": "3축 진동과 전류를 초당 1,000샘플로 수집하고 timestamp·CRC·프레임 손실·재시작 복구 처리",
"ja": "3軸振動と電流を毎秒1,000サンプルで収集し、timestamp・CRC・フレーム損失・再起動復旧を処理",
"en": "Collected three-axis vibration and current at 1,000 samples/s with timestamps, CRC, frame-loss handling, and restart recovery"
},
{
"ko": "RCC·GPIO·TIM·EXTI·USART·NVIC 레지스터 직접 설정",
"ja": "RCC・GPIO・TIM・EXTI・USART・NVICレジスタを直接設定",
"en": "Direct register configuration for RCC, GPIO, TIM, EXTI, USART, and NVIC"
},
{
"ko": "USART2 수신 인터럽트는 32바이트 링 버퍼 적재만 수행하고 파싱은 메인 루프로 분리",
"ja": "USART2受信割り込みは32バイトリングバッファへの格納だけに限定し、解析をメインループへ分離",
"en": "Reduced the USART2 receive ISR to filling a 32-byte ring buffer and moved parsing to the main loop"
},
{
"ko": "ATmega128A의 active-low ARM/E-STOP·디바운스·heartbeat timeout·latch·watchdog로 2-MCU 안전 구조 설계",
"ja": "ATmega128Aのactive-low ARM/E-STOP、デバウンス、heartbeat timeout、latch、watchdogによる2-MCU安全構成を設計",
"en": "Designed a two-MCU safety structure using ATmega128A active-low ARM/E-STOP, debounce, heartbeat timeout, latch state, and watchdog"
}
],
"technologies": [
"STM32F411",
"ATmega128A",
"C",
"I2C",
"ADC",
"DMA",
"UART",
"PWM"
]
},
{
"id": "ugly-pick",
"categories": [
"cloud",
"backend",
"ai-data"
],
"name": {
"ko": "Ugly Pick — 못난이 농산물 가격 투명성 서비스",
"ja": "Ugly Pick — 規格外農産物の価格透明化サービス",
"en": "Ugly Pick — Price Transparency for Imperfect Produce"
},
"period": {
"start": "2025-03",
"end": "2025-08",
"display": {
"ko": "2025.03 ~ 2025.08",
"ja": "2025.03〜2025.08",
"en": "March 2025 – August 2025"
}
},
"role": {
"ko": "8인 팀 · 백엔드·인프라 전담 · 기여도 50%",
"ja": "8名チーム・バックエンド/インフラ担当・貢献度50%",
"en": "8-person Team · Backend & Infrastructure · 50% contribution"
},
"summary": {
"ko": "현장 검증으로 기획을 피벗하고, Spring Boot와 FastAPI 기반 데이터 수집·모델 서빙 백엔드 및 AWS 운영 환경 구축.",
"ja": "現場検証を基に企画をピボットし、Spring BootとFastAPIによるデータ収集・モデル配信バックエンドとAWS運用環境を構築。",
"en": "Pivoted the product through field validation and built Spring Boot and FastAPI data collection, model-serving backends, and an AWS production environment."
},
"highlights": [
{
"ko": "포항시 농업기술센터 담당자에게 직접 가설을 검증하고 가격 예측 서비스로 피벗",
"ja": "浦項市農業技術センター担当者への直接検証を基に価格予測サービスへピボット",
"en": "Validated assumptions directly with Pohang Agricultural Technology Center and pivoted to price forecasting"
},
{
"ko": "Spring Boot API·오케스트레이션과 FastAPI 데이터 파이프라인·모델 서빙을 분리",
"ja": "Spring BootのAPI/オーケストレーションとFastAPIのデータパイプライン/モデル配信を分離",
"en": "Separated Spring Boot API orchestration from FastAPI data pipelines and model serving"
},
{
"ko": "Nginx 504 병목을 레이어별로 추적해 추론 응답 60초에서 30초로 단축",
"ja": "Nginx 504のボトルネックをレイヤー別に追跡し、推論応答を60秒から30秒へ短縮",
"en": "Traced an Nginx 504 bottleneck layer by layer and reduced inference response time from 60 to 30 seconds"
},
{
"ko": "EBS 8GB Full로 인한 서버 다운을 50GB 확장·로그 로테이션으로 복구",
"ja": "EBS 8GBの容量枯渇による停止を50GBへの拡張とログローテーションで復旧",
"en": "Recovered from an EBS 8 GB disk-full outage by expanding to 50 GB and adding log rotation"
}
],
"technologies": [
"Spring Boot",
"FastAPI",
"MySQL",
"PyTorch",
"AWS",
"Docker",
"Nginx",
"GitHub Actions",
"KAMIS API"
],
"recognition": {
"ko": "한국농수산식품유통공사 사장상(우수상) · 56팀 중 8위",
"ja": "韓国農水産食品流通公社 社長賞(優秀賞)・56チーム中8位",
"en": "Korea Agro-Fisheries & Food Trade Corporation President's Award · 8th of 56 teams"
},
"links": [
{
"label": {
"ko": "데모",
"ja": "デモ",
"en": "Demo"
},
"url": "https://ugly-pick.netlify.app/"
},
{
"label": {
"ko": "데이터·서빙 저장소",
"ja": "データ/配信リポジトリ",
"en": "Data & serving repository"
},
"url": "https://github.com/7SH7/ugly_price_predict"
},
{
"label": {
"ko": "백엔드 저장소",
"ja": "バックエンドリポジトリ",
"en": "Backend repository"
},
"url": "https://github.com/7SH7/ugly_back"
}
]
},
{
"id": "llm-for-science",
"categories": [
"ai-data",
"backend"
],
"name": {
"ko": "LLM for Science — 논문 데이터 파이프라인",
"ja": "LLM for Science — 論文データパイプライン",
"en": "LLM for Science — Research Paper Data Pipeline"
},
"period": {
"start": "2026-02",
"end": "2026-08",
"display": {
"ko": "2026.02 ~ 2026.08",
"ja": "2026.02〜2026.08",
"en": "February – August 2026"
}
},
"role": {
"ko": "가짜연구소 오픈소스 연구",
"ja": "Pseudo Lab オープンソース研究",
"en": "Pseudo Lab Open-source Research"
},
"summary": {
"ko": "대규모 논문 수집을 재개 가능한 파이프라인으로 만들고 단계별 중복·분야 검증을 통해 데이터셋 정제.",
"ja": "大規模論文収集を再開可能なパイプラインとして構築し、段階的な重複・分野検証でデータセットを精製。",
"en": "Built a resumable large-scale paper collection pipeline and curated the dataset through staged duplicate and relevance validation."
},
"highlights": [
{
"ko": "39개 키워드×11개 분야로 Semantic Scholar 논문 261,934건 수집",
"ja": "39キーワード×11分野でSemantic Scholar論文261,934件を収集",
"en": "Collected 261,934 Semantic Scholar papers across 39 keywords and 11 fields"
},
{
"ko": "해시 정확 중복 2,701건·Jaccard 유사 중복 40건·무관 분야 12,213건 제거",
"ja": "ハッシュ完全重複2,701件・Jaccard類似重複40件・無関係分野12,213件を除外",
"en": "Removed 2,701 exact hash duplicates, 40 Jaccard near-duplicates, and 12,213 off-topic records"
},
{
"ko": "raw·processed 분리와 checkpoint로 중단 지점부터 재개",
"ja": "raw/processed分離とcheckpointにより中断地点から再開",
"en": "Separated raw and processed data and used checkpoints for restartable collection"
},
{
"ko": "Full-text 5,684·Abstract 12,163·Title 229,133으로 최종 분리",
"ja": "Full-text 5,684・Abstract 12,163・Title 229,133に最終分類",
"en": "Final split: 5,684 full text, 12,163 abstract, and 229,133 title-only records"
}
],
"technologies": [
"Python",
"Semantic Scholar API",
"Parquet",
"PyArrow"
],
"links": [
{
"label": {
"ko": "가짜연구소 프로젝트 목록",
"ja": "Pseudo Labプロジェクト一覧",
"en": "Pseudo Lab project listing"
},
"url": "https://pseudo-lab.com/events/pseudocon-2026"
}
]
}
],
"other_projects": [
{
"id": "forensicagent",
"categories": [
"ai-data",
"backend"
],
"name": {
"ko": "forensicagent — 포렌식 자동 분류 CLI 에이전트",
"ja": "forensicagent — フォレンジック自動分類CLIエージェント",
"en": "forensicagent — Forensic triage CLI agent"
},
"period": {
"start": "2026-08",
"end": "2026-09",
"display": {
"ko": "2026.08 ~ 2026.09",
"ja": "2026.08〜2026.09",
"en": "August – September 2026"
}
},
"role": {
"ko": "오픈소스 개인 프로젝트 · 설계·구현",
"ja": "オープンソース個人プロジェクト・設計/実装",
"en": "Open-source solo project · Design & implementation"
},
"summary": {
"ko": "증거를 식별해 어떤 도구를 어떤 순서로 돌릴지 정하고, 도구 출력에서 알려진 의심 패턴만 뽑아 리포트로 묶는 triage 단계를 자동화.",
"ja": "証拠を識別してどのツールをどの順で実行するかを決め、ツール出力から既知の疑わしいパターンのみを抽出してレポートにまとめるtriage工程を自動化。",
"en": "Automates the triage step: identify the evidence, decide which tools run in what order, and pull only known suspicious patterns from their output into a report."
},
"highlights": [
{
"ko": "Scanner → Selector → Executor → Analyzer → Reporter 5단계를 순수 함수와 데이터클래스로 분리해 어느 단계든 stub으로 교체해도 나머지가 깨지지 않게 구성",
"ja": "Scanner→Selector→Executor→Analyzer→Reporterの5段階を純粋関数とデータクラスで分離し、どの段階をstubに差し替えても他が壊れない構成に",
"en": "Split the pipeline into five stages of pure functions and dataclasses so any stage can be swapped for a stub without breaking the others"
},
{
"ko": "도구 선별을 결정론 필터 → RAG 재정렬 → LLM 우선순위 3단계로 나누고, RAG는 순서와 컨텍스트만 바꾸고 실행 자격은 바꾸지 못하도록 제한",
"ja": "ツール選別を決定論フィルタ→RAG再整列→LLM優先順位の3段階に分け、RAGは順序と文脈のみに影響し実行資格は変更できないよう制限",
"en": "Staged tool selection as deterministic filter, then RAG re-ranking, then LLM prioritization, with RAG able to change order and context but never eligibility"
},
{
"ko": "RAG 의존성이나 인덱스가 없으면 결정론 경로로 조용히 폴백하고, LLM 파싱 실패 시에도 앞 단계 결과를 그대로 사용해 파이프라인이 항상 동작",
"ja": "RAGの依存関係やインデックスが無ければ決定論経路へ静かにフォールバックし、LLMの解析失敗時も前段の結果をそのまま使用してパイプラインが常に動作",
"en": "Falls back silently to the deterministic path when RAG dependencies or the index are absent, and reuses the prior stage when LLM parsing fails, so the pipeline always runs"
},
{
"ko": "증거를 외부로 보내지 않도록 로컬 LLM을 사용하고, 도메인 지식은 모델이 아니라 도구 메타데이터 YAML에 두어 도구 추가 비용을 파일 하나로 축소",
"ja": "証拠を外部に送らないようローカルLLMを使用し、ドメイン知識はモデルではなくツールメタデータのYAMLに置くことでツール追加コストをファイル1つに",
"en": "Runs a local LLM so evidence never leaves the machine, and keeps domain knowledge in tool-metadata YAML rather than the model, reducing a new tool to one file"
}
],
"technologies": [
"Python",
"Pydantic",
"Ollama",
"ChromaDB",
"RAG",
"CLI"
],
"links": [
{
"label": {
"ko": "저장소",
"ja": "リポジトリ",
"en": "Repository"
},
"url": "https://github.com/7SH7/opensource_copet"
}
]
},
{
"id": "smart-factory-multi-agent",
"categories": [
"ai-data",
"backend",
"cloud"
],
"name": {
"ko": "AI 기반 자동차 스마트 팩토리 공정별 결함 탐지·모니터링 플랫폼",
"ja": "AIベース自動車スマートファクトリー工程別欠陥検知・監視プラットフォーム",
"en": "AI-based Automotive Smart Factory Defect Detection & Monitoring Platform"
},
"period": {
"start": "2025-07",
"end": "2025-08",
"display": {
"ko": "2025.07 ~ 2025.08 · 5주",
"ja": "2025.07〜2025.08・5週間",
"en": "July 2025 – August 2025 · 5 weeks"
}
},
"role": {
"ko": "이벤트 파이프라인 설계 · Multi-LLM Agent 구현 · 기여도 30%",
"ja": "イベントパイプライン設計・Multi-LLM Agent実装・貢献度30%",
"en": "Event Pipeline Design & Multi-LLM Agent Implementation · 30% contribution"
},
"summary": {
"ko": "Kafka 이벤트 파이프라인과 LangGraph 기반 다중 LLM 워크플로우를 구현하고 개별 구성 요소의 장애를 격리.",
"ja": "KafkaイベントパイプラインとLangGraphベースの複数LLMワークフローを実装し、各コンポーネントの障害を分離。",
"en": "Implemented a Kafka event pipeline and LangGraph multi-LLM workflow with component-level fault isolation."
},
"highlights": [
{
"ko": "Kafka CDC 방식으로 5개 마이크로서비스의 이상 이벤트 실시간 수신",
"ja": "Kafka CDC方式で5つのマイクロサービスから異常イベントをリアルタイム受信",
"en": "Received anomaly events from five microservices in real time through a Kafka CDC pipeline"
},
{
"ko": "Gemini 원인분석·GPT-4 해결전략·Clova 비용평가 결과를 Claude가 중재",
"ja": "Geminiの原因分析・GPT-4の解決戦略・Clovaの費用評価をClaudeが仲裁",
"en": "Used Claude to mediate Gemini root-cause analysis, GPT-4 resolution strategies, and Clova cost estimates"
},
{
"ko": "합의 시 조기 종료하고 최대 3 Round로 LLM 호출 상한 설정",
"ja": "合意時に早期終了し、最大3ラウンドでLLM呼び出しを制限",
"en": "Stopped early on consensus and capped discussions at three rounds"
},
{
"ko": "ChromaDB와 Elasticsearch를 병렬 조회하고 한쪽 장애 시에도 결과 제공",
"ja": "ChromaDBとElasticsearchを並列検索し、片方の障害時も結果を提供",
"en": "Queried ChromaDB and Elasticsearch in parallel and continued when either engine failed"
}
],
"technologies": [
"FastAPI",
"LangGraph",
"Kafka",
"Redis",
"Elasticsearch",
"ChromaDB",
"GPT-4",
"Gemini",
"Clova",
"Claude",
"AKS",
"Docker"
],
"links": [
{
"label": {
"ko": "저장소",
"ja": "リポジトリ",
"en": "Repository"
},
"url": "https://github.com/7SH7/multi_agent"
}
]
},
{
"id": "ssobbi",
"categories": [
"backend",
"cloud"
],
"name": {
"ko": "SSOBBI — 감정 기반 재정 웰니스 서비스",
"ja": "SSOBBI — 感情ベースのファイナンシャルウェルネスサービス",
"en": "SSOBBI — Emotion-based Financial Wellness Service"
},
"period": {
"start": "2024-07",
"end": "2024-08",
"display": {
"ko": "2024.07 ~ 2024.08 · 3주",
"ja": "2024.07〜2024.08・3週間",
"en": "July 2024 – August 2024 · 3 weeks"
}
},
"role": {
"ko": "6인 팀 · 기획·백엔드·인프라 · 기여도 40%",
"ja": "6名チーム・企画/バックエンド/インフラ・貢献度40%",
"en": "6-person Team · Product, Backend & Infrastructure · 40% contribution"
},
"summary": {
"ko": "감정별 소비 패턴 분석과 알림 기능을 구현하고 AWS 프로덕션 환경을 구축. 멀티유저 테스트에서 데이터 혼선 버그를 발견해 재작성.",
"ja": "感情別消費パターン分析と通知機能を実装し、AWS本番環境を構築。マルチユーザーテストでデータ混線バグを発見し再実装。",
"en": "Built emotion-based spending analytics, notifications, and an AWS production environment, then found and rewrote a data-isolation flaw during multi-user testing."
},
"highlights": [
{
"ko": "감정 상태와 일간·월간 소비를 연결하는 REST API 구현",
"ja": "感情状態と日次・月次支出を結ぶREST APIを実装",
"en": "Implemented REST APIs connecting emotional states with daily and monthly spending"
},
{
"ko": "AWS EC2·Route 53·ALB·HTTPS 프로덕션 환경 구축",
"ja": "AWS EC2・Route 53・ALB・HTTPSの本番環境を構築",
"en": "Built a production environment with AWS EC2, Route 53, ALB, and HTTPS"
},
{
"ko": "실사용자 50명 테스트에서 다른 사용자의 데이터가 조회되는 문제 발견",
"ja": "実利用者50名のテストで他ユーザーのデータが表示される問題を発見",
"en": "Found cross-user data exposure during a 50-person user test"
},
{
"ko": "Map 오사용으로 인한 덮어쓰기를 로그로 추적해 모듈을 재작성하고 멀티유저 QA를 배포 체크리스트로 정착",
"ja": "Map誤用による上書きをログで追跡し、モジュールを再実装してマルチユーザーQAをデプロイ前チェックに定着",
"en": "Traced Map misuse that overwrote user data, rewrote the module, and made multi-user QA a deployment checklist item"
}
],
"technologies": [
"Spring Boot",
"JPA",
"MySQL",
"AWS EC2",
"Route 53",
"ALB",
"Kakao OAuth",
"CoolSMS"
],
"links": [
{
"label": {
"ko": "데모",
"ja": "デモ",
"en": "Demo"
},
"url": "https://ssobbi.netlify.app/"
},
{
"label": {
"ko": "조직 저장소",
"ja": "組織リポジトリ",
"en": "Organization repository"
},
"url": "https://github.com/LikeLionHGU/SSOBBI_Back"
}
]
},
{
"id": "hot-spot",
"categories": [
"backend",
"cloud"
],