본문 바로가기
깃허브에 올리면 안 되는 파일 처리 (올렸을 때 해결 방안) 프로젝트를 시작하며, 깃허브에 프로젝트 파일을 처음 푸쉬할 때 만났던 문제를 기록하려고 한다 ! key나 개인이 관리하는 정보들이 담겨져 있는 파일은 원격 저장소(깃허브)에 올라가지 않도록 해야한다.그럴려면 .gitignore 파일에 설정을 해주어야 한다.☝🏻   .gitignore는 git add 명령어 전에 설정되어 있어야 적용이 가능하다는 것을 알아두자.  ### IntelliJ IDEA ###application.properties.idea*.iws*.iml*.iprout/!**/src/main/**/out/!**/src/test/**/out/.gitignore 파일에 내가 제외하고 올리고 싶은 해당 파일(application.properties)을 적어주었다.   만약 원격 저장소인 깃허브에 .. 2024. 10. 2.
[MyBatis] <selectKey> 는 MyBatis에서 사용되는 XML 매퍼 파일에서 자동 생성된 (primary key) 값을 가져오는 데 사용되는 태그입니다. 일반적으로 자동으로 생성되는 키를 처리하기 위해 사용되며, 대표적으로 데이터베이스의 auto-incrementedl 컬럼에 해당하는 값을 얻어오는 데 활용됩니다. 보통 INSERT 쿼리문을 실행할 때, 데이터베이스에 의해 생성된 자동 증가(primary key)키 값을 얻고자 할 때 사용됩니다. 예를 들어, mysql에서는 AUTO_INCREMENT 컬럼을 사용하고, oracle에서는 SEQUENCE를 사용하는 경우가 있습니다. 는 이러한 상황에서 MyBatis가 자동으로 생성된 키 값을 어떻게 가져올지를 설정하는데 사용됩니다. ✍🏻 예시 저는 프라이머리 키를 사용자가 직접 입.. 2024. 2. 16.
[MyBatis] <sql>, <include> 태그는 다른 구문에서 재사용가능한 SQL 구문을 정의할 때 사용됩니다. 사용방법은 태그 id 속성 추가 및 id 속성 값을 부여해준 후 태그 내에서 사용할 쿼리를 작성하면 됩니다. // 사용할 쿼리 주의할 점 태그 내에 있는 쿼리들을 재사용하고 싶다면 재사용할 쿼리의 상단에 선언되어야 한다는 점입니다. 특정 태그의 쿼리에서 태그의 쿼리를 불러오는 명령을 하였지만, 상단에 선언되어있지 않고 하단에 선언되어 있다면 불러올 수 없습니다. 태그 내에서 파라미터 값을 추가해줘도 상관없습니다. 단 해당 태그를 불러오는 쿼리문에서 태그 내에 선언된 파라미터 값을 처리할 수 있는 인자 값이 존재해야만 에러가 나지 않습니다. code = #{code} 같은 파일 내에 정의해둔 태그 내의 쿼리들을 불러올 수 있게 해줍니다.. 2024. 2. 7.
MVC, MVP, MVVM 패턴 MVC 패턴 Model(모델), View(뷰), Controller(컨트롤러)로 이루어진 디자인 패턴입니다. 이 패턴은 주로 인터페이스를 가진 응용 프로그램에서 사용되며, 애플리케이션의 개발과 유지 보수를 쉽게 하기 위해 데이터, 프레젠테이션, 프로세싱을 서로 분리합니다. 애플리케이션의 구성 요소를 세가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발할 수 있습니다. 재사용성과 확장성이 용이하다는 장점이 있고, 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해지는 단점이 있습니다. (🧑🏻‍💻 저는 여기서 모델과 뷰의 관계가 복잡해진다는 거에 궁금증이 생겼는데 밑에서 설명하겠습니다!) 🍓 Model (모델) 모델은 애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻합니다... 2024. 1. 31.
팩토리 패턴(Factory Pattern) Factory Pattern이란❓ 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴이자, 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴 왜 써야하는데 ❓ 결론부터 말하면 객체 생성 하는 코드를 분리하여 클라이언트 코드와 결합도(의존성)를 낮추어 코드를 건드리는 횟수를 최소화 하기 위한 패턴이다. 여기서 클라이언트 코드는 분리시킨 객체 생성 코드를 호출하는 쪽을 의미한다. 결합도(의존성)는 왜 낮춰질까❓ 그것은 객체 지향 성질 중에 하나인 다형성을 이용하였기 때문이다. 인터페이스를 구현한 객체들은 같은 인터페이스를 바라 보기 때문에 코드에 유연함이 있기 때문이다. 어떻게 코드를 건드리는 횟수가 최소화 될.. 2024. 1. 27.
HTTP 요청 메시지 - JSON JSON은 규격화 한 문자열 규격화 했다는 것은 일정한 규칙에 맞게 작성했다는 의미다. 이 문자열을 해석해서 객체로 변환, 사용하기 쉽게 만드는 것을 '파싱'한다고 표현한다. 문자로 된 JSON 데이터를 Jackson 라이브러리인 objectMapper 를 사용해서 자바 객체로 변환한다. 여기서 잠깐❗️ objectMapper란? 객체를 직렬화하거나 객체로 역직렬화하는 Jackson 라이브러리의 클래스이다. ObjectMapper는 생성 비용이 비싸기 때문에 bean/static으로 처리하는 것이 좋다. 객체로부터 JSON 형태의 문자열을 만들어내는데, 이것이 바로 직렬화(Serialize)다. 그리고 그 과정에서 ObjectMapper의 writeValue()라는 메소드가 사용된다. @ResponseB.. 2024. 1. 18.