전체 글 202

DB 이관

중간 프로젝트 때는 MYSQL을 이용했지만 이번에는 ORACLE을 이용하려고 한다.그러기 위해서는 DBMS 이관이 필요하다. MYSQL → ORACLE 테이블 생성문을 수정하면서 가장 크게 고려한 점은 DBMS 간 호환성 및 이식성 !!DBMS를 저렴한 쪽으로 이관하는 경우가 많기 때문에 최대한 변경사항 없이 옮길 수 있도록 작성하는 것이 좋다. 그래서 최대한 SQL 표준 함수를 사용하고 ORACLE이나 MYSQL에서만 사용하는 AUTO_INCREMENT, NOW 등은 사용하지 않으려고 했다.1. VARHCAR2 대신 VARCHAR 사용 (이식성호환성 고려) 오라클에서는 VARCHAR2를 사용하도록 권장하고 있는 것 같지만 다른 DBMS에는 없어서 호환성이 좋지 않음.그래서 VARCHAR 사용 2. 관리..

웹 개발 2025.04.19

[Spring] 2일차

xml을 최소화하여 문제 해결해보기 [ ❗ 생각의 흐름 잡기 ] 태그가 존재한다.new를 했네?new를 했으니 기본생성자가 있어야 하네?삼성 TV, 엘지 TV 모두 기본 생성자를 만들어준다.public SamsungTV() { System.out.println("삼성TV 기본생성자 호출");} [ 삼성 리모콘과 엘지 리모콘 DI하기 ][ ❗ 생각의 흐름 잡기 ]파일 확인해보니 LG는 setter가 있네?applicationContext.xml에 을 통해 LG DI해주기 property는 setter로 의존성을 주입할 때 이용한다.property 태그는 LgTV 객체에 remote라는 setter가 있을거고, 그 setter에 lgRemote라는 이름의 Bean을 주입하겠다는 뜻.이때 ref="l..

웹 개발 2025.04.18

[Spring] 1일차

[스프링과 스프링부트]Spring현재 내가 다루고 있는 ‘그’ 스프링을 의미할 확률이 ↑2. Spring Boot모든 XML을 @(어노테이션)으로 바꾸기 위해서 나온 것web.xml, pom.xml, applicationContext.xml, mybatis.xml, jpa.xmlxxx.xml == 설정파일이라고 생각! ( == .properties)길고 복잡하고 가독성 떨어지는 xml 파일을 어노테이션을 통해 자바에서 한줄로 표현 (xml 설정들은 필연적으로 가독성이 떨어짐 >> @ JAVA에 설정을 직접할 수 있다! 가독성 ↑어노테이션을 왜달았는지 설명, 이 어노테이션이 뭐하는 애인지 설명주석을 잘 달자3.Spring 프레임워크가장 보편적인 스프링.웹 개발 프레임워크 == EJB(고대의 웹 개발 프레임..

웹 개발 2025.04.16

싱글톤 패턴이란?

싱글톤 패턴(Singleton Pattern) : 객체를 오직 하나만 생성하도록 보장하고, 이 객체에 전역적으로 접근할 수 있도록 만드는 디자인 패턴즉, 애플리케이션 전체에서 단 하나의 인스턴스만 존재하게 하고 싶을 때 사용하는 패턴이다. [사용하는 경우] 공통된 설정 정보를 전역에서 공유할 때DB 연결, 로그 처리, 설정 파일 로딩 등에 인스턴스를 여러 개 만들 필요가 없을 때메모리 절약, 성능 개선, 데이터 일관성을 유지해야 할 때 [장점]객체를 한 번만 생성하므로 메모리 절약동일 인스턴스를 사용해 데이터 일관성 유지생성 비용이 큰 경우에도 효율적으로 관리 가능[주의할 점]너무 많은 클래스가 싱글톤 객체에 의존하면 결합도가 높아져 유연성이 떨어짐테스트 어려움: 다른 객체처럼 쉽게 교체하거나 모킹(mo..

웹 개발 2025.04.15

자바스크립트 1일차

최종 프로젝트 때 왠지 VIEW를 맡게 될 것 같아서 하는 스크립트 공부... 웹 문서 안에 태그는 웹 문서 어디에나 존재할 수 있고, 몇 개든 존재할 수 있다. 다만, JS는 웹 문서에서 이미지나 텍스트 등의 요소를 제어하는 경우가 많기 때문에 되도록이면 이미지나 텍스트 등을 다 표시한 후에 실행하는 것이 좋아서 태그 직전에 자바스크립트 소스를 삽입한다. 다만, 웹 문서 안에 삽입하는 것보다 외부 문서에 작성하고 파일을 연결하는 것이 훨씬 깔끔하고 유지보수성이 좋다. ※ 자바스크립트는 HTML, CSS와 달리 대소문자를 구별한다.[ 스크립트 해석 ] 자바스크립트 위 텍스트를 클릭해 보세요h1 태그로 감싸져있는 자바스크립트 텍스트를 클릭하면 클릭 이벤트가 발생한다. 클릭하는 순간 글자의 색상이 빨간색..

IT/Frontend 2025.04.14

PK값 수동 증가

이번에 Model 파트를 맡아 쿼리문을 짜면서 고민했던 점은 PK값을 증가시키는 방법이다. AUTO_INCREMENT를 사용하면 편하지만 해당 속성은 MYSQL에만 존재하는 속성이기 때문에 다른 DBMS와 호환성이 안좋다.그래서 생각해낸건 IFNULL(MAX)).BOARD_COMBO_LIKED_NUMBER의 가장 큰 값에 1을 더해 PK값으로 설정하는 것이다. 만약 BOARD_COMBO_LIKED_NUMBER에 값이 없으면 0으로 치환하여 다시 처음 값부터 증가시키도록 한다. 시퀀스(Sequence) 라는 것도 있다고 들었는데 그건 오라클 DB에서  값을 자동으로 증가시킬 때 사용한다고 한다.하지만 얘도 오라클에서만 쓰이고 MySQL에는 없는 기능이라고 한다.다만 시퀀스를 따라해서 MySQL에서도 비슷하..

IT/DB 2025.04.13

중간 프로젝트 - 테이블 정규화 및 반정규화

이번 중간 프로젝트 때 사용된 데이터베이스 정규화와 반정규화 개념을 알아보고 프로젝트에서 설계한 ERD와 비교해보고자 한다.SQLD 공부할 때는 단순히 개념만 외워서 직접 적용해볼 기회가 없었는데 이번 프로젝트를 통해 테이블 정규화와 반정규화 개념을 확실하게 습득할 수 있었다.DB 정규화(Normalization): 데이터의 중복을 제거하고 데이터의 일관성과 무결성을 유지하기 위해 데이터를 구조적으로 나누는 과정목적데이터 중복을 최소화하고 데이터의 무결성을 유지하기 위해서. 또한, 변경 이상(삽입, 삭제, 갱신 이상)을 방지함단점복잡한 JOIN으로 인한 성능 저하쿼리 작성 어려움DB 반정규화(Denormalization)성능 향상을 위해 정규화된 데이터를 의도적으로 중복하거나 테이블을 통합하는 과정목적1..

웹 개발 2025.04.12

do, did

[ .do~ , .did~ ]- 요청을 처리하는 서버주소 형식로직 요청* 화면 요청과 구분 (화면 요청 : jsp, html 등) 1. .do 스프링 MVC 등 자바 웹 개발에 많이 사용서블릿 또는 컨트롤러 요청의 엔드포인트 역할을 함 2. .did do와 비슷하나, did는 사용자 정의 [사용 이유]1. 요청 구분을 쉽게 하기 위해 (jsp, html 등의 VIEW와 구분)2. 모든 요청을 하나의 컨트롤러에서 다루기 위해3. JSP 파일 경로 노출을 막음 실제로 login.do 같은 파일이 존재한다는 뜻이 아님 (login.jsp가 따로 존재)서버가 login.do라는 요청을 보고 로그인 처리 요청임을 파악한 후 서블릿이나 컨트롤러로 연결해준다. -> 자바 코드로 처리할 요청임을 구분--> 서블릿 매핑..

웹 개발 2025.04.11

java.util.Date와 java.sql.Date 차이

중간 프로젝트 발표를 준비하던 중 이메일 API - 이메일 인증 서블릿에서  Date.valueOf가 신경쓰여서 찾아봤다.. 분명 java.sql.Date보다 java.util.Date가 범위가 더 커서 util을 사용한다는 얘기를 들었는데 둘 차이에 대해 제대로 이해하지 못해서 java.sql.Date로 작성해버렸다. 어쩐지 DB 상에 시간이 다 00:00:00 으로 뜬다 했는데 java.sql.Date는 정말 날짜만 저장하기 때문에 시간이 찍히지 않는 것! 발표 때 이 부분을 먼저 드러내고 다음에 수정할 예정이다~ 라고 말하는 게 좋을지 고민이다. 아무튼 디벨롭 할 내용을 찾았다.

웹 개발 2025.04.10