본문 바로가기

분류 전체보기93

부의추월차선 (상) 부자가 되는 길에는 지름길이 있다 추월차선 방식 '서행차선'을 벗어나자. '천천히 부자 되기'는 내 시간을 소모시켜 실패하게하는 게임이다. 인생의 진정한 황금기는 내가 젊고 지각있고 생기 있을 때다. : 젊음을 갈아 넣어서 다 늙어서 부자가 되면 무슨소용인가? 물론 아닌것보다는 좋겠지만 젊은 시간을 소모해 가며 일반적으로 직장을 다니면서 돈을 아껴 모아간다는 것은 이미 젊을 때 부자되기를 포기한 것이다. 나는 그러고 싶지 않다. 돈은 기하급수적으로 벌어들이는 것이다 글쓴이는 람보르기니를 보고 드림카로 정하였고, 계속 성공한 부자들을 찾고 그들에 대한 다큐멘터리, 신문, 잡지, 책을 보고 읽었다. 몇 해동안 사업은 실패하고 아르바이트를 전전하였으며 성공해나가는 친구들과 비교되기도 하였다. 하지만 변화를 결.. 2020. 8. 24.
(Kotlin) Kotlin vs Java (+ 추가기능, 코틀린 컴파일 과정) Kotlin vs Java 추가 기능 코틀린 컴파일 과정 https://lion-king.tistory.com/entry/Kotlin-what-is (Kotlin) 코틀린이란? Kotlin 소개 코틀린이란? Kotlin 소개 열심히 공부해서 이번에 이직을 하게 되었습니다! 짝짝짝 기존에는 Java/Spring 기반으로 웹서버 백엔드 개발만 했었는데 이직 하는 회사에서는 Kotlin을 사용한다고 하더라 lion-king.tistory.com 이전 글에 이어 Kotlin의 컴파일 과정, Kotlin과 Java의 차이점을 정리합니다. Kotlin 컴파일 과정 Java 코드와 Kotlin 코드가 함께 있는 프로젝트의 빌드 과정 Kotlin 컴파일러가 Kotlin 코드를 컴파일해 .class 파일을 생성한다. 이.. 2020. 8. 23.
(Kotlin) 코틀린이란? Kotlin 소개 코틀린이란? Kotlin 소개 열심히 공부해서 이번에 이직을 하게 되었습니다! 짝짝짝 기존에는 Java/Spring 기반으로 웹서버 백엔드 개발만 했었는데 이직 하는 회사에서는 Kotlin을 사용한다고 하더라구요. 따라서, Kotlin이 무엇인지 간단하게 찾아보았습니다. https://kotlinlang.org/ Kotlin Programming Language kotlinlang.org 먼저 Kotlin 공식 사이트의 소개 내용입니다. " 개발자를 더 행복하게 하는 모던한 프로그래밍 언어이다. 평생 오픈소스로 제공된다! " 위 환경들에서 제공될 수 있구요. 왜 코틀린인가? 1. 간결함 boilerplate code(반복적으로 필요한 코드)를 대폭 줄일 수 있다. // getters, setters, `.. 2020. 8. 16.
(JPA) JPA를 왜사용하나요? JPA 사용 이유 (JPA) JPA를 왜사용하나요? JPA 사용 이유 JPA도 Spring과 마찬가지로 처음 접하고나서 3년차가 되어가고 있습니다. 작년 초 까지만 해도 어떻게 동작하는지 아무것도 모르고 사용하고 있었는데, 작년 중순부터 지금까지 JPA에 대해 공부하며 되돌아보니 그때는 어떻게 사용했었는지 놀라울 따름입니다. JPA를 조금씩 더 알아가며 왜 JPA를 사용하는 것인가에 대해 나름 정리해보려합니다. JPA 사용 이유 Java는 객체지향 언어이고, DataBase(: 이하 DB)는 데이터 중심으로 구성되어 있다. 이 패러다임의 불일치를 해결하기 위해 JPA를 사용한다. (JPA는 ORM(:Object-Relational-Mapping 이다)) 객체는 필드와 메소드를 가지고있고, 상속이 가능하다. 예를들어 팀 객.. 2020. 8. 1.
(Spring) Spring을 왜 사용하나요? Spring 프레임워크 사용 이유 Spring을 왜 사용하나요? Spring 프레임워크 사용 이유 Spring 프레임워크 기반으로 개발을 한지 3년차가 되어갑니다. 처음에는 HttpServlet 객체를 구현해서 게시판을 만들었었는데, 이후 스프링을 접하여 스프링으로 개발하게 되었습니다. 왜 사용하는지 이유는 몰랐고 대부분 기업에서 스프링 기술을 요구하기 때문에 막연히 시작한 것이었는데 이제서야 스프링을 사용하는 이유에 대해 나름대로 정리해보려고 합니다. Spring 프레임워크 사용 이유 Spring은 POJO 방식의 프레임워크이다. 위 그림은 스프링 소스 CTO가 스프링에 대해 설명하기 위해 그린 그림이라고 한다. ※ Spring 프레임워크 = POJO로 구성된 애플리케이션 + POJO가 어떻게 관계를 맺고 동작할 것인가를 담은 설계정보.. 2020. 8. 1.
(Java) ThreadLocal 이란? 테스트 코드, 사용 예시 Java ThreadLocal ThreadLocal 이란? 쓰레드 단위로 로컬 변수를 할당하는 기능을 제공하는 클래스이다. 자바 1.2 버전 부터 제공되고 있다. 간단히 예를 들면 메소드 안에서 선언된 로컬 변수는 메소드가 끝날 때 변수 사용이 종료되고, 리턴하거나 파라메터로 전달해주지 않으면 다른 메소드에서 사용할 수 없다. 하지만 ThreadLocal을 사용하면 쓰레드 범위로 변수가 할당되어 같은 쓰레드라면 다른 메소드에서도 변수 사용이 가능하다. 또한 다른 쓰레드에서 해당 값을 접근하거나, 변경하지 않는 것을 보장한다. ThreadLocale.java /** * This class provides thread-local variables. These variables differ from * the.. 2020. 7. 25.
(JPA) JPA @Id GenerationType.AUTO, IDENTITY 차이 JPA @Id @GeneratedValue(strategy = GenerationType.AUTO) @GeneratedValue(strategy = GenerationType.IDENTITY) 차이 테스트용 Entity @Data @Entity @Table(name = "ex_entity") public class ExEntity { @Id @Column(name = "id") @GeneratedValue(strategy = GenerationType.AUTO) // or GenerationType.IDENTITY private Integer id; @Column(name = "name") private String name; } 테스트 코드 /** * Developer : ryan kim * Date .. 2020. 7. 25.
(Spring 서비스 추상화) 서비스 추상화란? 사용자 레벨 관리 기능 예시 Portable Service Abstraction 서비스 추상화 사용방법과 형식은 다르지만 기능과 목적이 유사한 기술이 존재한다. 환경과 상황에 따라 기술이 바뀌고, 그에 따른 API를 사용하고 다르게 접근해야 한다는건 매우 피곤한 일이다. 사용자 레벨 관리 기능 추가 예제 요구사항 사용자의 레벨 (숫자가 클수록 높은 레벨) - BASIC(1) : 처음 가입 레벨. 50회 이상 로그인시 업그레이드 - SILVER(2) : 30번이상 추천받을시 업그레이드 - GOLD(3) : 최고레벨 사용자 레벨의 변경 작업은 일정 주기로 일괄 진행. 작업 전에는 기준을 충족하였더라도 레벨이 바뀌지 않음. Level Enum 추가 public static final int BASIC=1 과같이 상수 값으로 정의하여 쓰지.. 2020. 7. 23.
(동시요청 문제해결) 선착순으로 제공되는 서비스에서 동시요청 문제를 어떻게 해결할까? (Naver는 어떻게?) 동시요청 문제해결 (Naver 사례) 이번에 선착순 쿠폰을 발급하는 프로모션을 진행했는데, 난리가 아니었습니다. 오류난 데이터를 집계하고 고치면서 어떤 방법이 좋았을까 찾아보았습니다. 네이버에서 선착순으로 컨퍼런스 신청을 받을때는 어떻게 구현했을까? 당연히 짧은시간에 엄청난 수의 요청이 들어올것이다. 이전 컨퍼런스 신청 때 구현한 코드를 개선하여 오픈하였다고 한다. 개발 순서 성능 테스트 계획 수립 성능 테스트& 문제발견 데이터베이스 교착 상태 해결 1 일차 - 신청 전: 메모리 누수 문제 해결 - 신청 후: 성능문제, 정원초과 문제 2일차 - 신청 전: 글로벌 캐시, 로컬 캐시 방식 적용 - 신청 후: 결과확인 nGinder: 성능 테스트 도구 Pinpoint: 성능 모니터링 도구 nbase-arc: .. 2020. 7. 20.