![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLW6x5%2Fbtszw6dpW44%2F07kOwO6yTFkEUk2Ha3Ykgk%2Fimg.png)
logback이란? 스프링에서 SQL을 실행한 로그를 직관적으로 볼 수 있도록 도와주는 라이브러리 1) build.gradle dependencies에 아래 코드를 추가해주고 프로젝트 우클릭 > gradle > Refresh Gradle Project // https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4 implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4:1.16' 2) rc/main/resources 경로에 log4jdbclog4jdbc.log4j2.properties 파일 생성 후 아래 사진의 코드 작성 log4jdbc.spylogdelegat..
자바스크립트란? 자바스크립트는 웹페이지에 생동감을 불어넣기 위해 만들어진 프로그래밍 언어다. 자바스크립트로 작성한 프로그램을 script라고 부르며, 스크립트는 웹페이지의 HTML 안에 작성할 수 있다. 이렇게 작성한 스크립트는 웹페이지를 불러올 때 자동으로 실행된다. 자바스크립트는 브라우저 뿐만 아니라 서버에서도 실행이 가능하며, 자바스크립트 엔진(JavaScript engine)이 들어있는 모든 디바이스에서 동작한다. 엔진의 종류와 사용처는 아래와 같다. V8 : Chrome, Opera SpiderMonkey : Firefox IE : 버전에 따라 Tradent, Chakra 브라우저에서 할 수 있는 일 모던 자바스크립트는 메모리나 CPU 같은 저수준 영역의 조작을 허용하지 않는다. Node.js ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrNuXA%2FbtszlGz8H5C%2Fo2EUJGw5EtxLzbsakrW5R0%2Fimg.png)
이번엔 스프링부트 프로젝트를 DB와 연동해 본다. 먼저, 프로젝트 생성시 Oracle Driver과 Spring Data JDBC를 선택하여 프로젝트를 생성한다. DB Connection Pool(DBCP)란? WAS(Web Application Server)와 DB사이의 연결에는 많은 비용이 든다. DB에 연결하는 과정중 Connecting 비용이 가장 큰 비율을 차지한다. 이를 보완할 수 있는 방법이 Connection Pool인데. 말 그대로 해석하자면, Connection들의 웅덩이 라고 생각하면된다. 데이터베이스 커넥션 풀에는 사전에 데이터 베이스와 연결된 다수의 커넥션들이 존재하며 하나의 요청을 위해 열고, 닫는것이 아닌 열려있는 상태로 유지되어 디비에 부하를 줄여준다. 또한 커넥션 수를 제한..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbuLG0%2Fbtszg0sXrRk%2F3ZM7GR8VIeizKfEqH52kYK%2Fimg.png)
간단하게 Springboot 프로젝트를 생성하여 클라이언트의 값을 처리하는 3가지 방법을 알아보자. SpringBoot 3.x, Java 11, Gradle, Mustache를 활용하여 작성해보겠다. Springboot 프로젝트 생성 File -> New -> Other -> Spring Starter Project 선택영역의 이름은 보통 도메인명을 기입한다. 다음 화면에서는 모듈을 선택한다. 이전에 한 번 선택했던 모듈은 상단 빠른메뉴(?)에 나와있었다. 없다면 추가해주도록 하자. Spring Boot DevTools : 파일이 수정되었을때 서버를 재시작하지 않는다. (추천!!) Mustache : 스프링부트에서 공식적으로 지원하는 서버 템플릿 엔진. Spring Web : HTML, CSS 파일을 생..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9Jieh%2Fbtsy9imsutV%2Fku2h8rwhtozmhkMyPyI8q1%2Fimg.png)
사전준비 먼저, VScode설치와 Github계정이 필요하다. 프로젝트를 올릴 새로운 github 레포지토리 생성 여기서 Add a README file을 체크하느냐에 따라 터미널에서 오류가 날 수 있기때문에 잘 따라오도록한다. 난 추가하는 것으로 설명한다. 해당 레포지토리의 주소를 복사 VSCode에서 업로드할 폴더를 선택후, 터미널을 열어준다. 터미널여는 단축키 : ctrl + shift + ` 터미널 창에 아래의 순서대로 입력한다. git init// 해당 작업폴더에 .git 폴더 생성 git remote add origin (복사한 깃허브 레포지토리 주소)// 어디에 저장할지 설정 git remote -v // 연결된 레포지토리 확인 git status // 현재 상태 확인 (생략가능) // 주의..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm8Azs%2FbtstWJupLC2%2FTIQE9G92Cqj8bELyskMhk1%2Fimg.png)
🛠️ 오늘의 오류 팀프로젝트 진행중 누락한 테이블이 있다는걸 확인하고 뒤늦게 테이블을 생성하려는데, 분명 문법에 맞게 작성한 CREATE문이 작동하질 않았다. GUI로도 생성해봐도 FK 지정이 되질 않았고 원인을 찾아 삽질을 시작했다. Error Code: 3780. Referencing column 'mi_id' and referenced column 'mi_id' in foreign key constraint 'fk_member_coupon_mi_id' are incompatible. 에러 발생 원인 해당 오류는 참조하려는 컬럼과 해당 테이블의 컬럼. 즉 두 컬럼의 자료형이 다르거나, 제약조건의 이름이 겹칠때 발생 한다. 앞서 설명한 원인에 해당하지 않는다면 참조하려는 컬럼이 문자열 형식인 경우 ch..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120806 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요. 풀이 double 자료형으로 연산 후에 int 자료형으로 캐스팅하여 리턴했다. 코드 class Solution { public int solution(int num1, int num2) { double res..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb04pIP%2FbtstRTRWa33%2F7D0t0QLPw8vNsFFwMZpA90%2Fimg.png)
회원 관리 예제 - 백엔드 개발 비즈니스 요구사항 정리 데이터: 회원ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소가 선정되지 않았으나 개발을 해야하는 상황(가상의 시나리오) 웹 애플리케이션 계층 구조 일반적으로 웹 애플리케이션 계층 구조는 컨트롤러, 서비스, 리포지토리, 도메인, DB로 구성된다. 컨트롤러: 웹 MVC의 컨트롤러 역할, API 개발 서비스: 비즈니스 도메인 객체를 가지고 핵심 비즈니스 로직을 구현한 클래스 (ex:회원의 가입 여부 확인 로직) 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 회원, 주문, 쿠폰 등 주로 데이터베이스에 저장하고 관리되는 비즈니스 도메인 객체 아직 데이터 저장소가 선정되지 않았으므로 인터페이스로 구현 클래스를 변경할 수..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/181835 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 정수 배열 arr와 자연수 k가 주어집니다. 만약 k가 홀수라면 arr의 모든 원소에 k를 곱하고, k가 짝수라면 arr의 모든 원소에 k를 더합니다. 이러한 변환을 마친 후의 arr를 return 하는 solution 함수를 완성해 주세요. 풀이 answer 배열의 크기를 arr.length로 지정후 반복문을 순회하면서 조건에 따라 값을 지정해줬다. 코드 class Soluti..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120814 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요. 풀이 피자를 7조각으로 제공한다는 것은 7명의 사람이 한 판을 먹는것이다. 모든사람이 한 조각 이상 먹어야 하므로 나머지 연산을 수행해 0일 경우(7의 배수일 경..