IT
-
[MyBatis] SqlSession, SqlSessionFactory, SqlSessionTemplateIT/코딩히스토리_BE 2025. 1. 12. 23:53
마이바티스는 자바 기반의 SQL 매퍼 프레임워크라고했다. SQL문을 실행해주고 리턴을 받아야 하는데 이때 마이바티스는 SqlSession이라는 객체를 통해서 이를 진행한다. SqlSession이란?MyBatis에서 제공하는 주요 인터페이스로, 데이터베이스와의 연결(Session)을 관리하며 SQL 쿼리 실행, 트랜잭션 관리, 매퍼 호출 등의 역할을 담당MyBatis의 SqlSession은 JDBC의 Connection 객체를 내부적으로 사용하며, 이를 통해 개발자가 SQL 실행과 결과 매핑을 쉽게 처리할 수 있도록 도와준다. 즉, SqlSession은 JDBC의 Connection 객체와 같이SQL을 실행하고 결과를 반환받는 그릇이라고 생각하면 된다. SqlSession 자체도 열고 닫고를 SQL실행마..
-
[MyBatis] MyBatis?IT/코딩히스토리_BE 2025. 1. 12. 16:20
마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다.JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신해준다. 마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO 를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있다. (마이바티스3 문서: https://mybatis.org/mybatis-3/ko/index.html) 위에 설명은 마이바티스3 문서에서 나온 마이바티스에 대한 설명인데 한마디로 마이바티스라는 프레임워크를 사용하면 JDBC에서 사용했던 불편함을 개선할 수 있는 것이다. 즉, MyBatis는 자바 기반의 SQL 매퍼 프레임워크로, 개발자가 데이터베이스와 상호작용할 때 SQL..
-
[React js] state, useRef(), 로컬변수IT/코딩히스토리_FE 2024. 12. 20. 18:29
리액트에서는 변수를 사용할때 useState를 이용해 상태 관리와 리랜더링을 할 수 있다. 하지만 해당 변수의 값변경이 리랜더링이 필요없을 때는 useState를 이용하는건 불필요하다.특정 이벤트가 동작했을 때 useEffect()를 타도록 개발을 하고 있었다. 그렇기 때문에 의존성 배열에 useState를 통한 변수를 넣을지 , useRef()를 통한 변수를 넣을지 고민하다가문득 로컬변수와 useRef()의 차이점에 대해 정리가 명확하게 되지 않았다. 우선 useRef()는 useState처럼 값이 변경됐을때 리랜더링을 발생시키지 않지만, 동일하게 값을 유지하고 관리할 수 있는 리액트 훅이다.그렇다면 로컬 변수 또한 값이 변경됐을 때 리랜더링을 발생시키지 않는데, 그럼 어떤 상황에서 뭘 써야할까? 차이..
-
[자바스크립트] parseFloat() 사용시 주의사항IT/코딩히스토리_FE 2024. 12. 20. 18:29
parseFloat()는 자바스크립트의 전역 함수로,문자열을 부동소수점 수(float)로 변환하는 역할을 한다.즉, 주어진 문자열에서 숫자로 변환할 수 있는 부분을 파싱하고, 이를 반환한다. [작동방식] 문자열의 앞쪽부터 숫자를 인식(공백은 무시되지만, 숫자가 아닌 문자가 나오면 파싱을 중단합니다.)변환 가능한 숫자를 부동소수점 형태로 반환변환할 수 없는 문자열은 NaN을 반환 즉, parseFloat(string) 일시만일 '400,000' 의 값이 들어가게 된다면 결과 값은 400이 나온다, ','은 숫자가 아닌 문자기 때문에 파싱을 중단하기 때문이다. 때문에 자릿수 구분이 있는 숫자(금액) 같은 것을 parseFloat에 사용하려면 value = String(value).replace(/,/g,..
-
[코딩전에 보자] 개발팀이 갖춰야할 역량IT/소프트웨어 관련 지식 2024. 1. 26. 00:06
* 해당 내용은 김익환, 전규현 님이 지은 '소프트웨어 개발의 모든 것'에 나와있는 내용을 기준으로 작성하였습니다. 좋은 소프트웨어란 뭘까? 많은 조건들이 있겠지만 몇가지 뽑아보자 1) 유지보수가 용이해야한다. 2) 설계가 간결하고 명료해서 설계대로 만들어졌다. 3) 다른 팀원의 합류에 무리가 없다. 4) 표준이 있어서 관리가 용이하다. 5) 확장성과 유연성을 가지고 있다. 6) 버그 혹은 변경사항을 기록하고 공유 가능해야한다. 등등 지금 바로 떠올려도 많은 것들이 떠오른다. 책 '소프트웨어 개발의 모든 것'에서는 소프트웨어 프로젝트 팀이 갖춰야할 역량에 대해 다음과 같은 20가지를 말한다. 전사적으로 소스코드 관리 시스템을 딱 하나만 사용해야 한다.(SVN, GIT 등등) 모든 소스코드 및 개발문서는 ..
-
[코딩전에 보자] 개발에 필요한 기반 시스템IT/소프트웨어 관련 지식 2024. 1. 26. 00:06
기반 시스템(Infrastructure System)은 소프트웨어를 개발하는데 필요하거나 도움이 되는 시스템이다. 필요한 기반 시스템과 꼭 필요한 것은 아니지만 있으면 도움이 될만한 기반 시스템을 정리해 보겠다. 본격적인 개발을 들어가기 전에 이러한 사항들을 고려해보는게 좋을 것 같다. 필요한 기반시스템 소스코드 관리 시스템 흔히들 형상관리 시스템이라고 한다. 개발 생상성에 도움을 준다. (진척도 및 공유) 보관 및 백업 기능 수정이력이 남아서 문제시 원인 파악이 확실하다. (개발 과정의 투명성을 보장) 여러 버전의 개발을 할 수 있다. (기능을 분리해서 개발 가능하도록 해준다.) 문제시 손쉬운 복구 (빌드/복구가 미리 숙달되어 있어야 한다.) 대표적으로 중앙 관리식으로는 SVN , 분산 관리로는 GIT..
-
[SPRING BOOT] application.properties을 활용해 설정을 나누기IT/코딩히스토리_BE 2024. 1. 24. 00:25
Spring Boot에서 application.properties 파일을 개발 및 운영 환경에 따라 설정할 수 있다. 다만 규칙이 있다. Spring Boot는 프로파일을 통해 여러 환경에 따라 다른 설정을 제공할 수 있다. application-{profile}.properties 형식의 파일을 생성하여 각각의 프로파일에 필요한 설정을 정의할 수 있다. 예를 들어, application-dev.properties와 application-prod.properties 파일을 생성하여 각각 개발 및 운영 환경에 필요한 설정을 구성할 수 있다 로컬에서 테스트할 때는 application-dev.properties으로 실행하면 되고 배포해서 .jar 파일 실행시에 application-prod.propertie..
-
[React js] .env 파일로 설정IT/코딩히스토리_FE 2024. 1. 24. 00:13
로컬에서 할 때는 문제가 안되지만 저장소에 올릴때는 토큰/api 설정이나 서버url을 안올리는게 좋겠다. 그래서 .env파일에 별도로 관리하는 것이 좋다. [사전 조건] 1. create-react-app을 이용해 생성한 리액트 프로젝트 create-react-app으로 생성했다면 ' dotenv '를 통해 .env 파일을 import하지 않아도 된다. 다만 리액트에서 .env 설정값을 가져와 사용하려면 조건이 있다. REACT_APP_ 접두사 사용: 리액트에서는 환경 변수의 이름이 REACT_APP_로 시작해야 합니다. 예를 들어, REACT_APP_API_KEY=your-api-key와 같이 설정합니다. .env 파일의 재시작 없는 변경은 불가능: .env 파일의 내용이 변경되면, 개발 서버를 다시 ..