
2026-03-09 js 개념 2대 구성 구조 변수 (variable): 변하는 수 값 (Data) 숫자 문장 논리 객체 함수 2대 제어 요소 조건문: if, else if, else 반복문: while, for

문서 객체 모델자바스크립트에서 HTML을 접근할 수 있는에어컨 리모컨이라고 생각하면 됨UI가 부드럽게 바뀌는 것처럼 느껴짐프론트엔드 생태계가 생성alert 함수: 창이 뜨게 하는 것variable (변수) : 지역 변수임에도 불구하고, 밖에서 접근 가능한 버그 발생

리액트로 모달(Modal)이나 툴팁(Tooltip)을 만들다 보면, 분명 z-index를 9999로 줬는데도 배경 뒤로 숨거나 부모 박스 안에서 잘려 보이는 현상을 겪을 수 있다 이때 필요한 것이 바로 createPortal이다

기존 방식에서는 각 클래스가 필요한 객체를 내부에서 직접 만들었음. Scanner나 Service가 필요할 때마다 new를 남발하니 관리가 안 됨.문제점: 객체들이 파편화되어 제어가 힘들고, 특히 테스트할 때 외부에서 입력을 넣어줄 방법이 없음.이 문제를 해결하기 위해

보통 공통 함수를 모아두는 Util 클래스를 만들다 보면 온갖 메서드가 다 섞이게 됨. 파일 처리, JSON 변환, 날짜 계산 등이 한곳에 때려 박히는 상황이 발생함.가독성 저하: Util.toString()이라고 하면 이게 JSON으로 바꾼다는 건지, 단순히 객체를

1. 왜 바로 JSON으로 못 바꿀까? 예를 들어, 아래 코드에서 볼 수 있듯이 WiseSaying 같은 커스텀 객체는 자바만 이해하는 복잡한 구조임. 하지만 JSON은 단순한 문자열 데이터임. Util.json.toString() 메서드는 모든 객체의 내부 구조를

1. 강한 결합의 문제점 처음 코드를 짤 때는 ArticleController가 사용자 요청 받고, 검증하고, 리스트에 저장하고, HTML 응답까지 혼자서 처리했음. 문제점: 요구사항이 하나만 바뀌어도 컨트롤러의 코드를 다 뒤져야 함. 클래스 하나가 너무 많은 걸 처

프로젝트 실행 중 갑자기 NullPointerException이 발생했음. 로그를 따라가 보니 ArticleController 내부의 articleService가 비어 있다는 오류 메시지를 확인함. 분명 Container에 객체를 등록해 두었는데 무엇이 문제였을까.문제

메인 쿼리의 값을 서브쿼리에 전달해서 한 행씩 비교하는 방식임.동작 방식: 직원 한 명 한 명한테 물어보기홍길동(1번 부서) 차례: "1번 부서 최고 연봉 얼마야?" -> "6000" -> "나는 5000만원이니까 탈락"홍길순(1번 부서) 차례: "1번 부서 최고 연봉

@Controller는 해당 클래스가 Spring의 IoC 컨테이너에 의해 관리되는 '빈'임을 선언함과 동시에, DispatcherServlet이 찾을 수 있는 '핸들러' 객체로 등록하는 역할을 수행함.동작 원리: 스프링 부트 실행 시 컴포넌트 스캔(Component

1. 영속성 전이(Cascade)의 정의 영속성 전이는 특정 엔티티를 영속화할 때 연관된 엔티티도 함께 영속화되도록 강제하는 설정임. 이는 데이터베이스의 참조 무결성과는 별개의 개념으로, JPA의 영속성 컨텍스트(Persistence Context) 관리 관점에서 이

스프링과 JPA를 사용할 때 가장 중요한 전제는 DB 커넥션은 한정된 자원이라는 점임. 별도의 설정이 없다면 스프링은 Repository 메서드 단위로 세션을 관리함. 즉, 데이터 조회가 끝나면 즉시 커넥션을 반납하여 다른 요청이 사용할 수 있도록 함.기본 동작 방식:

MemberService 내부에서 Repository를 직접 new로 생성하면, 테스트 클래스에서 만든 Repository와 서비스 내부의 Repository는 이름만 같을 뿐 완전히 다른 메모리 주소를 가진 객체가 됨.현상: 테스트 코드에서는 memberReposit