반도체
·
카테고리 없음
반도체 업무
쿠키 훔쳐서 돈벌기
·
에세이
요즘 유튜브를 보면 광고하는 제품이 정말 많다. 단순히 유튜브에서 광고비를 받고 제품을 소개하는 경우도 있지만, 사실은 링크를 통해 돈을 버는 구조도 많이 쓰인다. 예를 들어 쿠팡 같은 사이트로 연결되는 링크를 달아두고 사람들이 그걸 타고 들어가서 제품을 사면, 그 구매 금액의 일부가 유튜버에게 돌아가는 방식이다. 이게 어떻게 가능한 걸까? 사실은 쿠키 덕분이다. 여기서 말하는 쿠키란, 사용자의 브라우저에 잠깐 저장되는 달콤한 데이터 조각이다.이 쿠키는 브라우저가 다른 서버로 요청을 보낼 때 살짝 같이 딸려 나간다. 서버는 이 쿠키를 확인해서 “아, 이 브라우저는 이미 로그인된 상태구나” 혹은 “이 사용자는 유튜브 링크를 타고 들어왔네” 같은 정보를 알 수 있다. 특정 링크를 타고 들어가면 쿠팡 같은 판..
TCP와 UDP 그리고 HTTP의 관계
·
카테고리 없음
TCP와 UDP 그리고 HTTP에 대해 모르는 개발자는 없을 것이다, 다만 이번에 한번 정리하고 자한다.1. TCP와 UCP둘다 OSI 4계층(네트워크 계층)에서 패킷을 통해 통신하는 방식이다. 둘의 차이는 아래의 표로 나타낼 수 있다. 항목 TCPUDP연결 방식연결형 (3-way handshake로 연결 확립)비연결형 (연결 없이 바로 전송)신뢰성패킷 손실 시 재전송, 순서 보장재전송 없음, 순서 보장 없음흐름 제어/혼잡 제어있음없음속도상대적으로 느림빠름사용 예시웹 브라우징(HTTP/HTTPS), 이메일, 파일 전송(FTP)실시간 스트리밍, 온라인 게임, VoIP헤더 크기20바이트 이상8바이트 2. 3-way handshake처음에 클라이언트가 서버에 연결하겠다고 말을 해, 그러면 서버는 자신의 ack..
인공지능 시대에 살아남는 개발자란
·
에세이
왜?라는 질문을 할 줄 아는 개발자개발 일을 하다 보면 언젠가부터 손이 머리보다 먼저 움직이는 순간이 온다.IDE를 켜고, 브랜치를 따고, 코드를 복사해서 붙여 넣고, 테스트를 돌리고, 배포를 누른다. 어느새 익숙해진 업무 흐름 안에서 나 자신이 하나의 스크립트처럼 움직이고 있음을 느낀다. 처음에는 “이게 맞나?” 싶어서 물어보던 것도, 시간이 지나면 그냥 “원래 그렇게 하던 거니까요”가 된다. 그런데 이게 가장 위험한 순간이다.그냥 하던 대로 하는 사람은 GPT보다 못하다이 말을 하면 기분 나쁠 수 있다. 하지만 요즘은 정말 그렇다. 패턴화된 작업, 반복되는 코드, 정형화된 문서… 이런 것들은 이미 AI가 사람보다 훨씬 빠르고 정확하게 처리한다. 예를 들어, "Spring Boot 프로젝트에서 게시판 ..
SKT 유심 탈취 사건이 진짜 위험한 이유
·
에세이
요즘에는 워낙 개인정보가 털렸네 마네 하는 뉴스가 많아서, SKT 유심 해킹 사건이 일어났을 때도 딱히 별 생각을 하지 않았다. 정말 찰나의 생각은 "스팸 메시지나 더 오겠다" 하는 정도였다. 근데 생각보다 SNS가 이 사건으로 뜨거워서, 개발자로서 조금 자세하게 분석해보면 좋겠다는 생각이 들었다. 왜 이렇게 위험하다는 걸까?보통 우리가 자주 접하는 해킹은 OSI 계층 중 7계층, 즉 애플리케이션 계층에서 많이 일어난다.웹사이트 취약점을 이용해 사용자 정보를 훔치거나, 악성 링크로 계정을 탈취하는 방식들이 이에 해당한다.이 경우 보통은 비밀번호를 바꾸거나 이중 인증을 설정함으로써 빠르게 대응이 가능하다. 하지만 이번 SKT 유심 해킹 사건은 훨씬 더 낮은 계층인, OSI의 2계층에서 문제가 발생했다. ..
똑같은 코드를 왜 매번 반복하지? (Ruby on Rails를 쓰는 이유)
·
에세이
올라오는 채용 공고를 보다 보면 Spring, Django, Node.js 사이에서 가끔 눈에 띄는 프레임워크가 있다.바로 Ruby on Rails, 줄여서 ROR이다. 귀여운 이름과는 다르게 정말 강력한 생산성을 자랑하는 프레임워크다. 보통은 DTO, DB, 컨트롤러 파일들을 하나하나 직접 만들지만, ROR에서는 단 한 줄로 이 모든 게 자동 생성된다. 그야말로 마법이다.지금까지 이런 방식을 모르고 지냈다니, 마치 손으로 일일이 벽돌을 쌓아 집을 짓고 있었는데, 알고 보니 옆집은 3D 프린터로 하루 만에 집을 완성한 상황과도 같다. Ruby on Rails는 "설정보다 관례"라는 철학을 기반으로 한다.덕분에 반복적인 설정 작업 없이도 깔끔한 MVC 구조를 잡을 수 있고, RESTful API도 몇 분 ..
개발자 컬쳐핏 면접, 어디까지 솔직해야 할까?
·
에세이
면접 시간 중 가장 재밌게 본게 ‘컬쳐핏 면접’이었다. 준비하면서 가장 재밌었고, 내 이야기를 솔직하게 할 수 있는 시간이었다. 컬쳐 핏 면접이라는게 어떻게 보면 인성면접의 연장선이고, 인성면접을 준비를 해야한다는 개념 자체가 나에게는 없었던 것 같다. 그저 솔직하게 내 생각을 말하고 나오는 게 가장 좋은 면접이라고 생각했었다. 하지만 그 면접에서 한 가지 질문을 듣고, 생각을 바꾸게 되었다. 지원자님, 인생에서 크게 실패한 경험이 무엇인가요? 면접관은 굳이 업무에서의 실패가 아니어도 괜찮다며, 정말 살면서 느꼈던 점을 이야기해도 된다고 말을 건넸다.그 말이 묘하게 유혹처럼 느껴졌다. 나도 모르게 마음의 문이 조금 열리는 기분이었다. "이 면접에서 너무 사적인 이야기를 하는 건 아닐까?" 수많은 생각이 ..
백엔드 CS 질문 모음
·
카테고리 없음
1. 웹 서버(WS)와 웹 애플리케이션 서버(WAS)에 대해 설명해주세요.웹 서버는 HTML 이미지 등 정적인 콘텐츠를 제공하여 사용자가 웹 페이지를 빠르게 볼 수 있게 합니다. 대표적으로 Apache와 Nginx가 있습니다. 웹 애플리케이션 서버는 동적인 콘텐츠를 생성하고 비즈니스 로직을 처리하여 사용자 맞춤형 응답을 제공합니다. 대표적으로 Tomcat과 JBoss가 있습니다. WS는 정적 파일을 제공하고, WAS는 동적 처리를 담당합니다. 이렇게 역할을 분담하면 서버 자원을 효율적으로 사용할 수 있습니다. 2. Tree와 Heap에 대해 설명해주세요.Tree는  비선형 자료구조이며, 계층적 관계를 표현하기에 적합합니다. Heap은 최댓값 또는 최솟값을 찾아내는 연산을 쉽게 하기 위해 고안된 구조로, ..
JVM 쉽게 이해하기
·
Java
JVM이란? JVM(Java Virtual Machine)은 컴퓨터가 Java 프로그램을 실행할 수 있게 도와주는 소프트웨어입니다. 마치 통역사처럼, 사람이 이해할 수 있는 언어(Java 코드)를 컴퓨터가 실행할 수 있는 언어(기계어)로 바꿔주는 역할을 합니다. Java 코드를 컴파일러를 통해 바이트코드(.class)로 변환하고, 이를 JVM이 실행 가능한 기계어로 변환합니다. JVM 덕분에 Java는 "한 번 작성, 어디서나 실행"이 가능합니다. JVM의 동작 원리 JVM은 크게 다음과 같이 이루어져있습니다.- 클래스 로더(Class Loader)- 실행 엔진(Execution Engine)- 런타임 데이터 영역 (Runtime Data Area) 클래스 로더Java ClassLoader는 JVM에서 ..
직접 만들어보는 스프링 컨테이너 #1
·
Spring
Java는 쓰는데 Spring은 쓰지 않는 서버 개발자?우리 회사는 Spring 없이 자체적으로 개발한 Java 기반 서버 프레임워크를 사용합니다.처음에는 큰 문제가 없었지만, 시간이 지날수록 코드의 복잡도와 유지보수성이 문제로 떠올랐습니다. DI(Dependency Injection) 개념이 없는 상태에서 개발하다 보니, 코드는 점점 지저분해졌고, 마치 스파게티 코드처럼 엉켰습니다. 하나의 코드를 수정하려면 이를 의존하는 모든 클래스를 함께 수정해야 하는 일이 빈번했습니다.결국, "지금의 문제를 해결할 명확한 규칙이 필요하다"는 결론에 도달했습니다.Spring 컨테이너의 도입"왜 새로운 규칙을 직접 만들어야 하지? 이미 검증된 해결책이 있다면 그걸 활용하자." Spring은 오랜 시간 동안 다양한..