개발 54

ORM + 시퀄라이즈 사용하는 이유

내 첫 개인 프로젝트에서는 시퀄라이즈 ORM을 사용하였고 대면면접에 주로 들어오는 질문은 왜 사용했는가? 였다. 솔직한 답변은 MySQL구문을 배우는데 시간이 오래 걸릴 것 같아서 이다. 개발자스러운 대답?이 아닌것 같아 ORM에 대해 공부하면서 답변을 정리해야겠다는 생각이 들었다. ORM(Object Relational Mapping) ORM이란 객체와 관계형 데이터베이스의 데이터를 자동으로 연결해주는 것을 말한다. 객체 지향의 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다. 객체모델과 관계형 모델 간에 불일치가 존재한다. ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. 객체를 통해 간접적으로 데이터베이스 데이터를 다룬다. Persista..

데이터베이스의 이해 ( Database, DBMS ,SQL의 개념)

데이터베이스 : 데이터의 저장소 DBMS (Database Management System,데이터베이스 관리시스템) : 데이터베이스를 운영하고 관리하는 소프트웨어 -계층형, 망형 , 관계형 DBMS중 대부분의 DBMS가 테이블로 구성된 관계형 DBMS(RDBMS)형태로 사용됨 -대표적으로 MySQL, 오라클, SQL서버, MariaDB등이 있다 SQL(Structured Query Language) : 구조화된 질의 언어라는 뜻으로 관계형 데이터베이스에서 사용되는 언어. 표준 SQL을 배우면 대부분의 DBMS를 사용할 수 있음 https://hongong.hanbit.co.kr/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9D%B4%ED%95%..

개발/SQL 2022.08.05

mysql / 계정 생성 및 설정+Access denied for user 'root'@'localhost' 오류

일전에 마리아 디비로 mysql 계정을 생성하고.... 두달이 지난 7월 새 프로젝트 시작에 앞서서 mysql에 접속하려고 하는데... Access denied for user 'root'@'localhost' 오류가 발생하였다... 비밀번호를 틀렸다고는 생각안하는데.. 초기화를 통해 오류를 픽스해보기로 한다. 1. 작업관리자 서비스 탭에서 mysql을 중지한다 (나는 MariaDB 사용중이므로 MariaDB를 중지했다) 2. mysqlId.exe 실행파일이 있는 경로로 들어간다. (나는 MariaDB에서 제공하는 MySQL Client로 쉽게 접속했다) 3. [mysqld.exe --skip-grant]를 입력해서 mysql 안전모드로 돌입한다 4. 새로운 프롬프트창을 열어서 [mysql -uroot]..

환경변수를 설정하는 이유

환경 변수를 등록하지 않으면 임의의 위치에서 소스를 만들고 작업할 때 명령을 호출할 때마다 번번히 full path를 입력해야 한다. 매번 컴파일을 할 때마다 이렇게 명령어를 입력하긴 불편하기 때문에 환경변수를 등록하는 것이다. 즉 , 환경변수를 설정하는 것은 운영체제가 컴퓨터의 어떤 경로에서든지 파일을 인식하도록 하는 것이다. 자바에서 JAVA_HOME을 환경변수로 등록하는 이유는 자바를 버전별로 관리하거나 자바를 설치한 위치가 바뀌었을 때 JAVA_HOME의 변수 값만 바꾸어 주면 자바 명령어를 그대로 이용 할 수 있기 때문이다 환경변수를 설정 할 때 jdk의 bin 디렉토리 경로까지 등록하는데 bin에 실행 파일이 있기 때문이다.

개발/이모저모 2022.07.12

자바 미니 프로젝트 시작

백엔드 개발자 취업에서 node.js의 비중이 너무 작아서 자바와 스프링 부트를 공부해야겠다고 생각이 들었다. 그래서 전부터 생각한 My Coment 라는 미니 페이지를 통해 사람들이 나에대한 코멘트를 남길 수 있는 미니 게시판 페이지를 기획하고 자바와 스프링부트를 통해 구현해보려고 한다. 참고할 유튜브 영상은 https://youtube.com/watch?v=frI5CoZe-vE&feature=share 자바와 스프링부트 심화를 위해 강의를 결제하기로 했다.. 10가지의 실무를 담아 11월,12월에 설문조사를 통해 결정된 강의를 업로드 된다는 fast campus의 강의.... 어쩌면 나에게 좋은 강의가 될지 모른다고 생각하며.... 바로 결제 ㅎㅎ https://fastcampus.co.kr/dev_..

개발/이모저모 2022.07.12

개발자의 역량

❇️문제 해결 능력 개발자들은 수많은 문제에 부딪힙니다 . 이 때 어떻게 그 문제를 정의하고 해결방법을 찾아 낼 수 있는지가 중요합니다. ❇️구현력 ( 코딩테스트 역량) 주어진 문제를 코드화 시켜야 합니다. 기업에서는 코딩테스트를 통해 개발자의 역량을 확인합니다. ❇️학습능력 IT기술의 트렌드는 정말 빠르기 때문에 기술의 패러다임, 스택이 빠르게 변하고 있습니다. 본질은 변하지 않지만 새로운 걸 배우고 습득하려는 자세는 항상 중요합니다. ❇️자기주도 능력, 탐구력 스스로 문제를 찾아보고, 정의하고 , 해결할 수 있는 능력이 있어야 합니다 ❇️의사소통능력, 팀워크 개발은 협업을 통해 이루어집니다. 최소 기획자, 디자이너, 개발자 이렇게 세 직군의 의사 결정이 필요합니다. 요즘 트렌드인 애자일 문화를 알아야..

개발/이모저모 2022.06.29

.gitignore 적용안됨 오류 해결

[출처] https://growingarchive.tistory.com/244 [Git] .gitignore 사용법 및 작동하지 않는 경우 (+ .gitignore 템플릿 사이트) 1. .gitignore란? - 민감한 정보가 들어있는 파일이나 형상관리할 필요가 없는 파일들은 git에서 더이상 추적(track)하지 않도록 .gitignore 파일에 추가해 따로 빼준다. - .gitignore 파일은 프로젝트 디렉토 growingarchive.tistory.com 위를 실행하고 다시 커밋해주면 정상적으로 된다 !

개발/이모저모 2022.05.27

개발일기 5월 27일자 배열 메소드 활용

이전에 제출한 코딩테스트 문제를 오늘 배운 배열 ,객체 함수를 활용해 수정해 보았다... 😂ㅇㅏ쉬워라 코딩테스트...내 배움의 부족이여.. 코테 문제의 내용은 아래와 같다 서버를 호출할때마다 다른 respose가 오는데 그걸 100번 호출하고 중복되는 값을 계산해서 중복된 값이 큰 순으로 정렬 출력해라. 전에 제출했던 코드는 아래와 같다 😢정렬에 실패했다고 한다... let responsedata = []; let idsInResdata = []; let total = 0; function onClickActBtn() { document.getElementById("lodingmsg").innerHTML = "데이터를 불러오는 중입니다"; get100response(); setTimeout(() => {..

thisArg는 무엇일까

⚠️thisArg 아래와 thisArg라는 콜백함수를 발견 할 수 있었지만 이해할 수 없었다 arr.findIndex(callback(element[, index[, array]])[, thisArg]) 그래서 검색해 보았다 https://ktpark1651.tistory.com/215 thisArg 에 대한 이해 (feat. filter 메소드) 목차 개요 filter 메소드 설명 뭐가 궁금해? 마무리 출처 개요 'thisArg 가 뭐가 그렇게 중요해? 몰라도 filter 메서드 그냥 쓸 수 있는데' 라고 할 수 있다. 나도 그렇게 가볍게 생각했었다..공부를 하 ktpark1651.tistory.com 결국 위 글에서는 'thisArg 는 Optional 인자로, thisArg를 인자로 넘기면 runt..

개발 2022.05.27

자바스크립트 객체로 이루어진 배열에서 값 가져오기+객체에서 값 가져와서 배열에 저장하기 (올바르게)

1. 자바스크립트 객체로 이루어진 배열에서 값 가져오기 [{},{},] 아래 처럼 for in 사용하지 말자....... 알수없는 오류를 발생한다 주목해야하는건 a[key].id라는 것이다 !!! const a=[{id:3},{id:52}...,] //여기서 3의 값을 가져오고 싶다면 console.log(a[0].id) // 3 //[3,52,...,]등으로 배열을 받고싶다면 //인덱스값을 불러오는 for in을 사용하자 const b=[]; for( key in a){ b.push(a[key].id); ) console.log(b) //[3,52,...,] 2. Object.keys(list).length 잘 사용해서 객체에서 값 가져와 배열 생성하기 function makeArrIn_cnt_id_q..