전체 글
-
이게 왜 되지?카테고리 없음 2026. 4. 13. 23:20
이게 왜 되지? 개발을 하면서 이게 왜 안되지?라는 생각이 드는 경우는 많습니다. 상식적으로 당연히 동작하는 게 맞는 부분인데 동작하지 않는 거죠. 이럴 땐 당황스럽습니다. 그런데 진짜 문제는 이게 왜 되지?입니다. 이 문제가 무서운 이유는, 일단 돌아가니까 제대로 원인 파악을 하지 못한 채로 방치하다 잠재적인 문제를 야기하기 때문입니다. 오늘은 그 이야기를 해 보려 합니다. 시작은 아주 사소했습니다. 필요 없는 의존성을 정리하기 위함이었죠. 그러다 분명히 이건 dependencies에 있어야 하는 의존성인데, devDependencies에 있는 걸 목격했습니다. 문제는 에러가 나지 않고 너무나도 잘 동작했던 것입니다.dependency와 devDependency의 차이가 무엇인가요? npm을 사용하는 ..
-
2025년 회고 : 개발보다 중요한 것카테고리 없음 2025. 12. 27. 01:26
2025년 회고 : 개발보다 중요한 것 저는 작년부터 해가 흐를 때마다 한 해를 관통하는 키워드를 만들기로 했습니다.2024년의 키워드는 “노력”,,,아직 끝나지 않은 2025년의 키워드는 “예측”이라고 여겼습니다. 올해 2분기까지만 하더라도요.우리는 2026층을 오르는 계단의 끝에 서있어요. 아래를 내려다보니, 계단에 쓰여있던 글귀의 내용은 “예측”이 아닌, “나”라는 생각이 듭니다. 글의 본격적인 시작에 앞서, 올 한 해 제가 집중했던 기술적 여정을 먼저 짧게 기록해 두려 합니다. 이 글이 기술적 방법론보다는 개인적인 성찰에 더 치중되어 있어, 자칫 본업인 개발에 소홀했던 것처럼 비치지 않을까 하는 우려 때문입니다. 지난 2024년에는 브라우저 환경에서 약 70만 개의 데이터를 부드럽게 핸들링하는 서..
-
대규모 언어모델 안전성 검증을 위한 다단계 인간 주도 프롬프트 인젝션 전략 분석 (A Study on Multi-Phase Human-Driven Prompt Injection Strategies for Evaluating LLM Safety Layers)카테고리 없음 2025. 12. 12. 11:21
대규모 언어모델 안전성 검증을 위한 다단계 인간 주도 프롬프트 인젝션 전략 분석A Study on Multi-Phase Human-Driven Prompt Injection Strategies for Evaluating LLM Safety Layers 초록(Abstract)본 연구는 최신 대규모 언어모델(LLM)에 대해 인간 실험자가 수행한고도로 복합적인 프롬프트 인젝션 공격 사례를 분석한다.실험자는 역할 재정의, 허위 현실 구성, 사실 반전 루프, 외부 권위 주입,심리적 압박, 익살·가벼운 톤을 통한 경계 무력화 등총 7가지 공격 계열을 조합하였다.특히, 타 모델(Grok)에서 관측된 실제 실패 사례를 포함하여LLM 안전 계층이 서사적 위험을 어떻게 탐지하지 못하는지를 상세히 분석한다.해당 연구는 인간..
-
[좋은 중고차 고르기 시리즈 1] 자동차의 구조와, 엔진의 동작 원리.카테고리 없음 2025. 7. 20. 19:33
[좋은 중고차 고르기 시리즈 1] 자동차의 구조와, 엔진의 동작 원리. 필자는 올해 운전면허를 취득한 사회초년생 소프트웨어 개발자입니다.이 블로그의 본래 목적은 소프트웨어 개발의 원리, 느낀 점, 방법론 등을 다루는 것이었습니다. 소프트웨어 개발의 개념을 다루면서 실제 개발에서 생기는 문제를 풀기가 쉬워졌고, 전채적인 시스템의 맥락을 한눈에 파악할 수 있었습니다. 요즘 제 관심사는 자동차로 크게 이동했습니다. 좋은 자동차를 합리적으로 구매하고 싶어 졌고, 중고차라는 선택지가 상당히 매력적이었습니다. 하지만 중고차는 매력적인 만큼 리스크도 상당합니다. 내 차가 어떤 문제가 있을지 초보자의 입장에서는 쉽사리 알 수 없었고, 운 좋게 문제 확률이 적은 차를 구매했더라도 신차에 비해 유지보수하기 어렵습니다. ..
-
[JS] Map이 Object보다 빠른가? 그 이유는 무엇인가?카테고리 없음 2024. 11. 20. 20:38
[JS] Map이 Object보다 빠른가? 그 이유는 무엇인가? 우리 서비스에 문제가 하나 생겼다.실시간 인터렉션에 의하여 데이터들이 화면과 db에서 제거되어야 하는 것이다. 단순이 이런 상황이라면 문제 될 것이 없지만, 다뤄야 할 데이터가 적어도 10만 개 단위란 것이다. 코드가 동작하는 흐름은 대충 이러했다. 제거할 데이터들의 id를 찾는다.id들을 특정 변수에 몽땅 넣고, UI상에서 즉시 제거한다.특정 변수를 delete할 데이터의 id 배열의 형태로 서버에 요청을 보낸다. `deleteIds: string[]`요청 성공 시에 client에 존재하는 상태를 deleteIds 변수와 비교하여 업데이트한다.-> refetch 하여 서버 데이터와 100% 동기화하기엔 데이터 개수가 너무 많다.요청 실패 ..
-
[React] 전역 상태관리를 효율적으로 사용하기 위한 생각.카테고리 없음 2024. 10. 1. 14:13
[React] 전역 상태관리를 효율적으로 사용하기 위한 생각. react에서 가장 중요한 개념 두 개를 꼽자면 컴포넌트, 그리고 상태일 것이다. 여기서 상태는 단순한 값이 아니라, 컴포넌트의 렌더링에 영향을 미친다. 따라서 굉장히 중요하다. 여러 개의 컴포넌트에서 같은 상태를 공유하기 위해서는 prop을 통해 상태를 넘겨주어야 한다.const Component = ({prop1}) => {prop1}; 위 코드와 같은 형태로 말이다. 이제 상태를 좀 더 확장시켜 보자.const Layout = () => { const userInfo: UserInfoType = . . .; return }const Body = ({userInfo}: {userInfo:UserInfoType}) => { ..
-
[git] git 잘 사용하기.카테고리 없음 2024. 7. 15. 16:09
[git] git 잘 사용하기. cmd + z는 mac os에서 변경사항을 이전으로 되돌릴 수 있는 단축키이다. 이 단축키 덕분에 무언가를 작성하거나 만들다가 실수를 하여도 되돌릴 수 있기 때문에 걱정이 없다. 우리가 개발을 할 때에도 코드를 작성하다 문제가 생기면 cmd + z, cmd +shift + z를 사용하여 되돌리고, 되돌린 걸 되돌리는 것이 가능하다. 그런데 이렇게 되돌리는 것은 부분적으로만 가능하지, 프로젝트 전체의 형상을 되돌리기는 불가능하다.이런 문제를 해결하기 위해 사용 가능한 것이 git이다. git은 프로젝트의 특정 시점을 저장하고, 원하는 시점으로 이동할 수 있게 도와준다. 마치 4차원 세계의 w 축처럼 말이다. git으로 모든 문제가 해결되었다면 다행이다. 하지만 그렇지 않다...
-
[AWS] route53.카테고리 없음 2024. 7. 2. 12:06
[AWS] route53. route53route53은 아마존에서 제공하는 확장 가능한 고가용성의 DNS 웹 서비스이다. Route 53는 사용자 요청을 AWS 또는 온프레미스에서 실행되는 인터넷 애플리케이션에 연결한다고 한다. route53으로 도메인을 구매하고 관리할 수 있다. 도메인에 대한 DNS 레코드를 생성하고 관리할 수 있다. 트래픽을 효율적으로 분산시켜준다. 헬스 체크 및 모니터링을 지원한다. 넷플릭스, 슬랙, 맥도날도 등 수많은 기업들이 route53을 사용하고있다. 그런 큰 기업들, 많은 기업들이 route53을 사용하는 이유는 무엇일까? 들어가기에 앞서 DNS에 대해 궁금한 사람은 아래 게시글을 확인하자.https://frorong.tistory.com/entry/CS-DNS%EC%99..