[2021-03-15 월] TIL

노을·2021년 3월 15일
0

TIL

목록 보기
57/81

ORM의 역사

간단정리

JDBC가 원조였는데 이것만으로는 유지보수, 객체지향 프로그래밍이 안되기 때문에,
프레임워크들이 store-procedure -> MyBatis를 거쳐서 JPA로 발전해오고 있고,
우리나라는 JPA는 세밀한 조정이 안되고 러닝커브가 높기 때문에 MyBatis를 주로 사용한다.

stored, procedure

  • 쿼리를 함수처럼 사용
  • JDBC와 달리, 책임의 분리
  • 단점
    - 유지보수 측면에서 심각한 문제점
    • DB안에는 (프로시저는) 버전관리 툴이 없음.
    • 배포했다가 장애가 발생하면, 서버측은 Git으로 롤백을 하면되는데 procedure의 경우는?
      • 버전을 수 작업으로 맞춰줘야함.
    • 프로시저 업데이트를 하면 서버측도 맞춰줘야함.

JPA

ORM(Object Relational Mapping) 표준 기술로
Hibernate, OpenJPA, EclipseLink, TopLink Essentials과 같은 구현체가 있고,
이에 표준 인터페이스를 정의한 것이 JPA이다.

MySql 외부접속

AWS EC2에 우분투 인스턴스를 생성하고, MySQL을 설치하여 외부에서 접속을 가능한 환경을 만드는 실습을 하였다.
요구사항을 또 생각없이 따라했다가 왜 문제가 생긴지 모르고 방황을 했었다.

$ sudo -i
$ cd /etc/mysql
$ grep -r 'bind'
# bind-adress=127.0.0.1 내용 주석처리 (앞에 #을 붙임)
$ cd /etc/mysql/mysql.conf.d
$ sed -i 's/bind/# bind/' mysqld.cnf
$ cat mysqld.cnf | grep bind
$ sudo systemctl restart mysql
$ exit

와 같이 나와있었는데, 라눅스 명령어를 아직 잘몰라서 원인을 모르지만 주석처리가 올바르게 되지 않아 쿼리가 접속이 안되는 문제가 있었다..😂

결국, vi mysqld.cnf 형식으로 편집기로 직접 주석처리를 해주었더니 잘 작동했다.

미션3 진행

  • 404, 405 에러페이지
  • 로그인시 상단 알림 표시
  • User와 Question 연결 (@ManyToOne)
  • Answer 구현
profile
카르페디엠

0개의 댓글