OOP(Object Oriented Programming, 객체지향 프로그래밍)
·
공부/OOP
이거 공부하느라 시간을 얼마나 투자했는지 모르겠다. 다 이해한 게 맞는지도 의문인 게 문제ㅎㅎ.. SOLID에 대해서도 공부를 해보았는데 내용이 생각보다 커서 나중에 하나하나 따로 포스팅을 해야겠당. 틀린 부분이 있다면 지적해주시면 감사하겠습니다 : ) 1. OOP(Object Oriented Programming, 객체지향 프로그래밍)이란? 컴퓨터 프로그래밍 패러다임 중 하나입니다. 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호작용을 통해 조직을 구성하는 프로그래밍 방법입니다. 2. OOP 장단점 1) 장점 코드 재사용이 용이합니다. 유지보수가 쉽습니다. 생산성이 향상됩니다. 2) 단점 처리 속도가 상대적으로 느립니다. 3. OOP 특징 1)..
[JAVA] JVM 구조, Memory Leak
·
Backend/JAVA
회사에서 class 파일 반영 후 서버를 내렸다가 다시 올리는 순간 Memory Leak이라는 메시지가 나오면서 서버가 올라가지 않는 현상이 일어났었다. 당시 상황상 뭔가 이상해서 백업 파일을 다시 원복 시켰는데도 Memory Leak.. 내 코드의 문제도 아니었고 다른 코드의 문제로 결국 다른 서버를 다 내려버리고 다시 올렸더니 그때서야 되었다. 신입이라면 모든지 다 찾아보고 공부를 해봐야지 하며 근 일주일간 틈틈이 JVM과 Memory Leak에 대해서 조사를 해보았다. 우선 자바의 메모리 관리는 가비지컬렉터가 하므로 JVM도 알아야 했으므로 JVM 설명으로 시작을 해보겠당. 1. JVM (Java Virtual Machine) - 자바 가상 머신. - 자바 바이트 코드(. class)를 실행하는 주..
트랜잭션(Transaction)
·
데이터베이스
문서 작업하면서 트랜잭션 때문에 고생했다.. 대충대충 알던 개념을 자세하게 조사하자니 힘들었다ㅎ... 1. 트랜잭션(Transaction) - 데이터베이스의 상태를 변환시키는 하나의 논리적인 기능을 수행하는 작업의 단위 - 한번에 모두 수행되어야 하는 연산들 2. 트랜잭션 성질(ACID) 성질 설명 원자성 (Atomicity) 트랜잭션에 포함된 작업은 전부 수행되거나 전부 수행되서는 안된다. (all or nothing) 일관성 (Consistency) 트랜잭션을 수행하기 전이나 수행 후나 데이터베이스는 항상 일관된 상태를 유지해야 한다. 고립성 (Isolation) 트랜잭션 수행 중 다른 트랜잭션으로 인해 변경 중인 데이터 값을 훼손하는 일은 없어야 한다. 지속성 (Durability) 수행을 완료한 ..
[Spring boot] 다중 데이터베이스 연결
·
Backend/Spring
회사에서 문서 작업을 하며 mybatis에서 다중 데이터베이스 연결을 시도했다. 전 프로젝트를 진행하면서 JPA를 이용해서도 연결을 했었는데 그건 나중에 포스팅 하도록 하겠다. 1. 프로젝트 구조 config 폴더는 모든 설정을 관리하는 폴더입니다. 'OneDataSourcrConfig'는 첫번째 데이터베이스 연결에 관한 설정이고, 'TwoDataSourceConfig'는 두번째 데이터베이스입니다. 각각 데이터베이스에 대한 Controller, Service, DAO, Domain은 폴더를 만들어 관리합니다. 간단하게 'test1', 'test2'로 설정했습니다. 가장 중요한 점은 Config 폴더의 위치입니다. Config에는 Domain, Mapper.xml 폴더 경로를 입력하는 코드가 있기 때문에 ..