목록전체 글 (74)
코딩하는 오징어
Spring data jpa & hibernate를 이용하기 위한 빈 설정에 대해 알아보자. 먼저 코드와 dependency부터 보자. @Bean(destroyMethod = "close") public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) { HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); vendorAdapter.setGenerateDdl(true); vendorAdapter.setShowSql(true); LocalContainerEntityManagerFactoryBean factory = new Loc..
안녕하세요. 오랜만에 블로그에 글을 쓰네요. 그 동안 저에게는 굉장히 많은 일들이 있었어요. 3월 부터 게임회사에서 인턴 생활과 학교 생활을 병행하며 지내다 올해 5월이 지난 후에는 N사 인턴 면접, K사 신입 면접을 보게 됐죠. (면접 준비를 하면서도 굉장히 많은 성장을 하게 됐습니다. 기초가 탄탄해진 기분..?ㅎㅎ) 즐기다보니 좋은 결실을 맺게 되어 K사 서버개발자 직무로 돈 버는 개발자가 되었습니다.ㅎㅎ 어찌 됐든 제가 개발자가 되고싶다는 생각을 가진 이후로 어떤 여정을 보내게 되었는지에대해 공유를 하고 싶어 글을 쓰게 됐습니다. 좋지 않은 글 솜씨지만 읽기 편하게 쓰도록 노력하겠습니다. 나름 진지한 글이기에 ㅋㅋ같은 수식어는 생략하겠습니다..ㅎㅎ 글이 무거워지면 조금 루즈해지겠지만 그래도 첫 출근..
이 글에서 각 클래스의 사용법을 설명하지는 않겠다. 각 클래스들의 특징과 성능적인 관점에서 비교해보고자 포스팅을 하는 것이기 때문이다. 비교 코드를 먼저 보자.더할 값(value)에서 임시로 사용되는 객체가 생성되지 않도록 하기 위해 final String으로 지정하였다. 실행 결과를 살펴보자. 응답시간 주요 소스 부분 응답 시간(ms) 비고 str += value 95,801.41ms 95초 strBuffer.append(value) 247.48ms 0.24초 strBuilder.append(value) 174.17ms 0.17초 String 클래스의 문제점이 보이는가?? 이게 끝이아니다. 메모리 사용량 주요 소스 부분 메모리 사용량(bytes) 생성된 임시 객체 수비고 str += value 100,..
인코딩이란? Base64 인코딩에 대해 알아보기전에 먼저 인코딩이란게 무엇인지 간략하게 알아보자. 인코딩(encoding)은 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태나 형식으로 변환하는 처리 혹은 그 처리 방식을 말한다. 동영상이나 이미지영역에서도 많이 사용되는 용어지만 우리는 Binary Data를 Text로 바꿔주는 Base64 인코딩에 대해서 알아봐야하기 때문에 이하는 생략하겠다. Base64 인코딩 Base64란 Binary Data를 Text로 바꾸는 Encoding(binary-to-text encoding schemes)의 하나로써 Binary Data를 Character set에 영향을 받지 않는 공통 ASCII 영역의 문자로만 이루어진..
mysql-connector-java 버전 6.xx로 변경하면 com.mysql.jdbc.Driver가 Deprecated 됐다고 경고메시지가 뜨는 것을 확인할 수 있다. com.mysql.cj.jdbc.Driver로 바뀌었으니 JDBC-Driver 클래스 지정에 주의하자. 기본적으로 DB연결시 jdbc:mysql://{ip주소}:{port번호}/{databaseName} 식으로 url을 설정해서 연결했었는데 6.xx로 변경시키면 serverTimezone파라미터가 필수가 돼서 빼먹으면 DB연결이 되지않는다. jdbc:mysql://{ip주소}:{port번호}/{databaseName}?serverTimezone=UTC 위와같이 serverTimezone 파라미터를 꼭 넣어주어야 한다. 추가적인 변경 사..
Redis의 데이터 보호하기Redis는 많은 곳에 적용 할 수 있는 훌륭한 IN-Memory NoSQL DB이다. 세션 관리를 위해 Redis를 많이 사용하는데 누군가에게 데이터를 탈취 당한다면 인증을 하지않은 사용자가 서버를 휘젓고 다닐 수 있다. 그렇기 때문에 Redis 인스턴스를 보호하는 것은 굉장히 중요하다.다음과 같이 세 가지 방법으로 Redis 인스턴스들을 보호할 수 있다.비밀번호 설정하기커맨드 명령어 바꾸기네트워크 보안비밀번호 설정하기Redis를 설계했을 때, Redis의 주요 목표는 최고의 보안 수준보다는 최고의 성능과 단순성이었다. Redis가 평문 패스워드를 기반으로 하는 기본 보안 메커니즘을 구현했지만, Redis는 접근 제어 목록(Access Control List, ACL)을 구현..