분류 전체보기 30

자바의 객체 지향 특성

'스프링 입문을 위한 ~' 책 내용중 자바와 객체 지향 내용을 간단하게 정리하려고 한다. 우선 자바 객체 지향의 특성은 4가지다. 캡슐화, 상속화, 추상화, 다형성인데 이것을 간단하게 기억하기 위해 '캡! 상추다'라고 기억하면 편하다. 캡슐화란 무엇일까. 한줄로 설명하자면 정보를 은닉화 또는 공개화라고 생각한다. public, private, protected, default를 선언하면서 각각의 변수 또는 메소드가 다른 클래스에서 어디까지 접근할 것인지 공개 범위를 지정해주는 것이라고 생각한다. 캡슐화 함으로써 무엇이 좋은가? 무분별한 접근을 막을 수 있고, 통일성 있는 코드 작성이 가능하다. 상속화의 경우 객체의 공통된 특성을 하나로 추상화한 상위 클래스를 하위 클래스에 상속시키는 것을 뜻한다. 상속화..

etc 2022.06.21

역시 (개발)책을 읽어야해

'자바 성능 튜닝 이야기', '이펙티브 자바', '스프링 입문을 위한 자바 객체 지향의 원리와 이해' 책을 읽고 있다. 제대로 읽기 시작한지 한달반 정도 지난것 같은데... 깨닫는게 너무나 많다. 우선 기초적으로 몰랐던 내용들을 알 수 있다. 예를 들면, 전역변수 사용은 지양해야 한다는 것, StringBuilder 또는 StringBuffer를 사용해야 하는 이유, 자바 언어가 메모리에서 어떻게 동작하는지 등등 기초적인 내용을 알 수 있다. 기초적인 내용을 알면 무엇이 좋은가... 우선 코드를 바라보는 시각이 달라지는 것 같다. 이전에 생각없이 작성했던 코드들을 어떻게 변경해야 하는지, 어떻게 효율적으로 작성해야 하는지가 점점 보이는것 같다. '스프링 입문을 위한 자바 객체 지향의~' 책을 통해서는 J..

etc 2022.06.21

P2P? P2P!!!

P2P? P2P!!! P2P란 Peer to Peer를 간추린 말입니다. 영단어 Peer란 ' (나이신분이 같거나 비슷한) 또래 ' 라고 네이버 사전적 정의가 나와있는데, 간단히 말하면 사용자와 사용자 간의 연결이라고 보면 됩니다. 이러한 의미인 P2P 단어에 요즘 관심갖게 된 이유는 금융과 네트워크에서 자주 사용되고 있기 때문입니다. P2P 금융 금융에서 P2P는 금융기관의 역할을 IT 플랫폼이 대신하고 개인과 개인 간의 대출-투자를 연계하는 것을 말합니다. 이게뭐지...? 금융기관(ex. 신한은행, 국민은행 등)의 역할을 어떻게 IT 플랫폼으로 대신한다는거지..?라고 생각할 수 있는데요. 한마디로 은행 역할을 App이나 홈페이지가 대신하고 대출자와 투자자를 바로 매칭시켜준다고 생각하면 될것 같습니다...

etc 2022.06.21

함께 자라기

이 책을 읽게 된 계기는 우아한 테크캠프 Pro 3기에 지원하다가 알게 되었습니다. 우테캠 Pro3기에 비록 떨어졌지만ㅠㅠ(아 그때 생각하면 너무 슬프네... 꼭 참여하고 싶었는디...), 참여함으로써 코드 피드백을 받을 수 있었고 개발관련 서적을 추천해줌으로써 모든 참가자들에게 무언가 도움되기 위한 일을 진행하는 것 같아 개인적으로 참여만으로도 좋은 기회가 되었다고 생각합니다. (Pro 4기는 벌써 끝났네요.. 다음에 5기 나오면 꼭 신청해보려고요!!) 아무튼 “함께 자라기"라는 책을 이때 알게되었는데, 개발자로써 회사에서 어떤 마음가짐으로 일해야 하는지, 어떻게 팀원들과 함께 성장 할 수 있는 방안을 만들 수 있을지 조금이나마 해답을 얻을 수 있었던 것 같습니다. 그럼, 이 책은 어떤 고민이 있는 독..

Book 2022.06.20

멕시코 여행

9월 말. 멕시코 여행을 다녀왔다. 비행 시간은 약 15시간. 직항이라 한번에 갈 수 있었지만, 생각보다 너무 긴 비행 시간 때문에 많이 피곤했다. 도착한 멕시코 시티 느낌은 뭐라할까... 사람 사는 곳은 다 똑같구나?라는 느낌이었다. 멕시코에 도착하기 전 '카르텔'에 대한 이미지가 너무 강해 약간 두려움도 있었지만, 멕시코 시티는 오히려 안전한 것 같았다. 하지만 대부분 라틴어만 사용할줄 알아 영어로 의사소통하기 어려웠지만 바디 랭귀지는 만국 공용어라 어디서든 통하고, 구글과 네이버 번역기는 몇몇 어려운 단어들을 해석해주었다. 멕시코에서 돌아다닌 여행지는 멕시코시티, 과나후아토, 칸쿤, 라스 에스따까스 총 4곳이며 각 지역의 대표 명소들을 둘러봤다. 그중 가장 기억에 남는 장소는 타잔 영화 배경지인 라..

My Story 2022.06.17

Template Pattern(템플릿패턴) 적용기

템플릿 패턴이란? 어떤 작업 처리 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계 수행에 있어서는 서브 클래스에서 정의한 작업을 실행하는 디자인 패턴. 즉, 전체적인 큰 흐름은 슈퍼클래스를 따라가고 특정 부분에 있어서만 서브 클래스가 정의한 작업을 실행한다는 내용입니다. 내용은 이해했지만, 막상 어떻게 적용해야 될지 모르다가 이번에 업무에 사용했던 내용을 간단히 작성해 봅니다. 요구사항 회원가입 시 사용자가 업로드한 신분증 이미지를 저장합니다. 이미지 저장 시 신분증 타입(ex. 운전면허증, 외국인등록증 등)에 따라 파일명이 다르며, 내국인은 운전면허증과 주민등록증. 외국인은 여권과 외국인등록증만 업로드할 수 있습니다. 또한 이미지 파일 저장 시 공통된 키 값으로 암..

Java 2022.03.04

B+Tree란 무엇일까요

(아래 내용은 B-Tree 내용을 안다는 전제하에 작성하였습니다. B-Tree에 대해 알고싶은신 경우 해당 글을 참고해주시면 감사합니다.) 핵심 내용 B-Tree의 한계점은 무엇이고 왜 B+Tree가 생겨났는지 B+Tree란 무엇인지 B-Tree vs B+Tree 비교 MySQL에서 B+Tree는? B-Tree 한계점 B+Tree를 설명하기 전에 B-Tree의 한계점이 무엇인지 생각해보자. B-Tree는 검색 속도가 빠르지만, 순차적으로 데이터를 불러오는 경우 리프, 브랜치, 루트 노드에 각각 저장된 데이터 주소를 불러와야 하기 때문에 매우 복잡합니다. 해당 내용이 왜 중요하냐면, 데이터베이스에 저장된 테이블 로우 정보는 입력된 순서대로 차근차근 저장되어 있지 않고 랜덤한 주소에 각각 저장되어 있습니다...

Computer Science 2020.05.11

MySQL에서 활용되는 B-Tree구조

핵심 내용 B-Tree란 무엇인지 B-Tree 특징 및 장단점 MySQL에서 B-Tree 역할은? B-Tree란 B-Tree란 하나의 노드에 여러자료가 배치되는 트리구조의 일종으로써 Binary 트리와 다르게 좌우가 항상 균형적으로 유지되고 노드 데이터는 정렬된 상태로 존재합니다. 예를 들면, 아래 그림과 같습니다. 위의 그림과 같이 어느 한쪽으로 트리구조가 쏠려있지 않고 같은 높이에 존재하는 것을 확인 할 수 있습니다. 이외에도 몇가지 B-Tree의 특징이 존재합니다. 1) 노드의 자료수가 N이라면 자식(Child) 노드 수는 N + 1이어야 합니다. 위의 그림을 예로 들면, 각 노드에 2개의 데이터가 존재하기 때문에 자식 노드가 3개씩 존재하는 것을 알 수 있습니다. 2) 각 노드 데이터에서 작은 것..

Computer Science 2020.05.04

Transaction & AOP

글의 목적 - 프록시 패턴 이해 - 트랜잭션 동작 원리 이해 - 트랜잭션을 통해 AOP 이해 이 글은 'Spring Transaction 관리'와 연관되어 있습니다. 서두에 해당 글 내용과 연관지어 작성하오니 링크된 블로그 글을 먼저 읽어보시길 바랍니다. 트랜잭션 코드의 문제점 트랜잭션을 아래와 같이 적용 할 경우 어떤 문제점이 발생할까? 잠시만 생각해보자... public class PaymentService{ ... private PlatformTransactionManager transactionManager; public void setTransactionManager(PlatformTransactionManager transactionManager){ this.transactionManager ..

Java 2020.02.26