본문 바로가기
개발/개발자 취업준비

[백엔드 개발자 취업준비] 면접 단골 질문 정리

by 코딩하는짱구 2024. 1. 17.
반응형

백엔드 개발자로서 질문을 받았을 때 막힘없이 술술 나와야 하는 여러가지 개념들을 정리해보았다. 
아래 개념들은 머리로 알고는 있지만 막상 물어봤을때 입으로 설명하지 못했던 것들 위주로 정리했으니
꼭 참고하여 면접에서 당황하지 않길 바란다. 

 

[백엔드 개발자 취업준비] 면접 단골 질문 정리

ORM과 TypeORM이란?

1. ORM
class 객체와 관계를 매핑해주는 것 주로 관계형 db(mySQL, postgreSQL etc..)에서 쓰인다

 

그렇다면 orm을 왜 사용하는가?
그 차이는 사용했을 때, 아닐때 예시를 들어보면 쉽다. 

 

아래는 mysql 테이블에 sequelize orm을 이용하여 사용자 데이터를 추가하는 코드이다. 

1. orm 사용

const createUser = async () => {
  try {
    const newUser = await User.create({
      username: 'john_doe',
      email: 'john@example.com',
    });
    console.log('User created:', newUser.toJSON());
  } catch (error) {
    console.error('Error creating user:', error);
  }
};

createUser();

 

2. orm 없이 sql query문 사용 

const mysql = require('mysql');

// MySQL 연결 설정
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'username',
  password: 'password',
  database: 'database',
});

// 연결
connection.connect();

// 데이터 추가 (직접 SQL 쿼리문 사용)
const createUserData = {
  username: 'john_doe',
  email: 'john@example.com',
};

const insertQuery = `INSERT INTO users (username, email) VALUES ('${createUserData.username}', '${createUserData.email}')`;

connection.query(insertQuery, (error, results) => {
  if (error) {
    console.error('Error creating user:', error);
  } else {
    console.log('User created:', results);
  }

  // 연결 종료
  connection.end();
});

 

위에서 볼 수 있듯 orm은 모델을 정의한 후에 작업을 객체 지향적으로 수행할 수 있기 때문에 가독성이 높아지고 편의성이 올라간다. 또한 데이터 베이스 종류에 상관없이 쉽게 변경이 가능하다는 이점이 있다. 

 

그렇다면 typeORM은 뭘까?

typeORM 또한 node.js 환경에서 사용되는 orm의 종류이다. 
쉽게 말하면 typescript 클래스와 데이터베이스 테이블을 매핑하는 orm 이다. 

 

Typeorm과 Sequelize의 특징 비교 

  • sequelize가 findAll, findOne등과 같은 메서드를 통해 데이터 베이스 작업을 수행 하는데에 비해,
    typeorm은 쿼리빌더를 사용하여 쿼리를 작성하는 방식을 채택하므로, sql에 더 가까운 형태이다.
  • 둘 다 MySQL, PostgreSQL, MariaDB등 다양한 관계형 데이터베이스를 지원한다

 

 

목차 2에 해당하는 링크

 

목차 3에 해당하는 링크

 

목차 4에 해당하는 링크

 

마무리 맨트는 이부분 정도에, 글이 끝나기 전에, 다시한번 이번 글의 요약을 써주시는것이 좋습니다. 물론 여기에도 키워드가 다시 반복이 되는것을 추천 드립니다.

 

추천글

 

이부분에는 플러그인 -> 이전글 발행 기능을 이용해서 이 글과 관련되거나 추천할 만한 글 몇개의 링크를 걸어주시는걸 추천 드립니다.

 

반응형