목록전체 글 (84)
nnginii
주제 한 줄 요약하네스 엔지니어링은 AI 모델이 단순히 답변만 하는 수준을 넘어, 도구를 사용하고, 코드를 수정하고, 실행 결과를 확인하며, 스스로 작업을 이어갈 수 있도록 주변 실행 환경을 설계하는 일이다.왜 이 개념이 필요한가?처음 AI를 사용할 때는 프롬프트를 잘 쓰는 것이 가장 중요해 보였다. 원하는 내용을 자세히 설명하고, 역할을 지정하고, 예시를 주면 더 좋은 답변이 나왔다. 그래서 한동안은 프롬프트 엔지니어링이 핵심처럼 느껴졌다.하지만 개발 작업에서는 단순히 좋은 답변을 받는 것만으로는 부족하다. 코드를 고쳐야 하고, 파일을 읽어야 하고, 터미널 명령어를 실행해야 하고, 테스트 결과를 확인해야 한다. 에러가 나면 다시 원인을 추적해야 하고, 수정한 코드가 실제로 동작하는지도 확인해야 한다. ..
오늘의 주제 한 줄 요약Docker Compose는 여러 개의 컨테이너로 구성된 개발 환경을 하나의 설정 파일로 묶어 실행하고 관리할 수 있게 해주는 도구이다.왜 이 개념이 필요한가?웹 서비스를 개발하다 보면 하나의 프로그램만 실행해서 끝나는 경우가 생각보다 많지 않다. 프론트엔드가 있고, 백엔드 서버가 있고, 데이터베이스가 따로 있다. 경우에 따라 Redis 같은 캐시 서버나 Nginx 같은 웹 서버도 함께 사용한다.처음에는 각각을 직접 실행해도 크게 불편하지 않아 보인다. 프론트엔드는 npm run dev로 실행하고, 백엔드는 따로 실행하고, MySQL은 로컬에 설치해서 켜두면 된다. 하지만 프로젝트가 조금만 커지면 문제가 생긴다. 어떤 포트를 써야 하는지, 데이터베이스 계정은 무엇인지, 백엔드가 D..
JPA의 N+1 문제는 ORM이 편해진 만큼, 데이터 조회 흐름을 이해하지 않으면 성능 비용을 치르게 되는 대표적인 사례다.1. 왜 N+1 문제를 알아야 할까JPA를 처음 사용할 때는 편했다. Repository에서 findAll() 한 번 호출하면 연관된 객체까지 자연스럽게 따라오는 것처럼 보였다.!BUT.. 데이터가 조금만 많아져도 응답 속도가 많이 느려질 때가 있다. 이 때 로그를 보면 SQL이 한두 번이 아니라 생각보다 많이 실행되고 있었다. N+1 문제는 이런 상황에서 등장한다.왜 이렇게 쿼리가 많이 나가지?에 대한 의문을 풀지 못하면, JPA는 편한 도구가 아니라 마냥 성능을 갉아먹는 것처럼 느껴지게 된다. 그래서 이 개념은 단순한 JPA 이슈가 아니라 객체 중심 설계와 DB 조회 방식이 충돌..
문제https://school.programmers.co.kr/learn/courses/30/lessons/12918 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이 문제는 문자열 s 의 길이가 4 혹은 6이고, 모든 문자가 숫자인지를 동시에 만족하면 true를 반환하면 된다. 문자열이 숫자로만 이루어졌는지는 단순히 정수로 변환되는지를 보거나, 각 문자가 숫자인지를 확인하면 된다, 여기에 길이 조건까지 같이 검사하면 된다.접근먼저 문자열의 길이를 확인한다. 길이가 4나 6이 아니라면 바로 false를 반환하면 된다. 길이 조건을 만족한다면, 문자열의 모든 문자가 숫자인지 확인한다. Java에서는 Charac..