본문 바로가기
반응형

기타 개념정리48

DB Delete 시 Limit을 걸어야 하는 이유 실제 운영하는 서비스에서 대량의 데이터를 사용하는 경우에는 데이터가 쌓이면 쌓일수록 속도도 느려지고 용량도 커져서 부담이 가기 때문에 일정 기간이 지난 데이터들은 모두 삭제를 하도록 쿼리를 작성하게 될텐데 여기서 중요한 점은 데이터가 너무 많으면 가급적이면 LIMIT을 걸어두어야 한다는 거다 데이터가 몇억건이 넘어가는 테이블의 경우에는 자연스럽게 매일 몇백~몇천만건의 ROW가 쌓이는 경우도 많은데 한번에 다 지운다고 배치를 작성해서 DELETE를 해버리면 데이터 양 자체가 너무나도 많기 때문에 한참 동안 그거 지우고 있는다고 다른 트랜잭션 처리를 못하게 되는데 이러면 자연스럽게 데드락이 발생하게 된다 따라서 해결방법은 지울 항목을 조회한 뒤에 for 문을 돌리면서 해당 항목을 한개씩 delete 쳐주거나.. 2021. 6. 2.
하드코딩 소프트코딩 뜻부터 예시 정리 날코딩이라고도 하는 하드코딩은 엄청 간단한 개념인데 하드코딩의 뜻은 값을 고정시켜 놓는다는 거다 위 코드를 보면 hardCoding 메소드를 호출 시 return을 "하드코딩"; 으로 작성했기 때문에 뭔 값을 넣고 호출하건 간에 무조건 "하드코딩"을 리턴한다 반면 하드코딩의 반대말인 소프트코딩은 가변적인 값을 의미하는데 softCoding 메소드 호출 시에 어떤 값을 넣느냐에 따라 넣은 값을 그대로 반환하는 것이 보이는데 즉 소프트코딩이란 값이 고정되지 않고 가변적인 것을 말한다 하드코딩은 값을 고정시켜 놓는 것이기 때문에 상황에 따라 다양하게 값을 리턴해야 하는 경우 자연스럽게 문제가 생기기 때문에 해당 경우에는 하드코딩을 가변적인 소프트코딩으로 변경을 해 줘야한다 그리고 하드코딩 기준을 정확히 몰라 .. 2021. 3. 12.
개발환경 Local Test Stage Product 차이 정리 프로그래밍 개발환경은 일반적으로 Local(dev) / Test / Stage / Product 네 분류로 나뉘게 되는데 차례대로 한번 알아보자 먼저 Local은 개발자 본인 개발환경을 말하는데 TEST 서버의 DB를 연결해 놓고 본인이 개발한 파일들을 테스트 하게 된다 Local은 개발자의 테스트 용도로만 사용된다 다음으로 TEST는 개발한 내역을 테스트 서버에 올려 남에게 보여주기 위해 사용하는데 Local에서 개발이 완료된 파일들을 TEST 서버에 올려주면 현업들이 와서 개발한 내역을 테스트 해볼 수 있게 된다 DB는 운영서버 데이터를 좀 끌어온 TEST DB를 사용하게 된다 Stage는 운영서버(Product)에 최종 배포 전 개발한 내역을 운영서버와 동일한 DB로 설정한 것을 말하는데 운영DB로.. 2021. 3. 9.
애자일(Agile) 뜻부터 방법론까지 Agile은 민첩한이라는 뜻을 가지고 있다 여기서 애자일 하면 애자일 방법론 애자일 개발 애자일 조직 애자일 프로세스 이런 내용들이 떠오를텐데 애자일은 고객의 변화하는 요구에 민첩하게 대응하는 운영 철학이나 조직 문화를 말한다 애자일과 주로 비교되는 폭포수(Waterfall) 방식을 놓고 보면 폭포수 개발 프로세스는 개발할 요건을 모두 정해둔 뒤에 개발을 시작하고 테스트를 거쳐 릴리즈를 하게 되지만 애자일 개발 프로세스의 경우에는 업무 상 중요도에 따라 우선 순위를 정하고 필요한 기능들을 순차적으로 개발한다 여기서 애자일 방법론이 나온 이유를 보자면 폭포수 모델은 요구사항이 미리 정해져 있고 단계별로 개발한 뒤(1차, 2차) 한번에 릴리즈한다 근데 실제 업무 시에는 고객의 요구가 시시각각으로 변하거나 혹.. 2021. 3. 9.
CRON Expression 사용방법 및 생성기 CRON은 리눅스 유닉스에서 스케쥴링을 할 때 사용하는 표현식으로 위 스크린샷과 같이 초 / 분 / 시 / 일 / 월 / 요일 / 연도 로 나누어 스케줄을 구현하게 된다 자주 쓰는 표현식은 다음과 같은데 10초마다 0/10 * * * * ? 1분마다 0 0/1 * 1/1 * ? * 5분마다 0 0/5 * 1/1 * ? * 10분마다 0 0/10 * 1/1 * ? * 매일 0 0 12 1/1 * ? * 여기서 * 은 매번을 의미하고 ?는 설정값 없음 /는 증분을 나타내는 데 사용한다 (EX : 초 부분에서 0/15 면 0초부터 시작해 15 > 30 > 45 이런 식으로..) CRON 표현식을 슥 보면 이게 뭔 말이야 이런 생각이 들 수 있는데 아주 편하게 만들 수 있기 때문에 전혀 걱정할 필요가 없다 Cr.. 2021. 2. 23.
SQL에서 인덱스가 필요한 이유 SQL에서 인덱스는 테이블의 데이터에 대한 포인터를 말하는데 책의 목차와 비슷한 개념이라고 보면 된다 책에 목차가 있으면 특정 내용이 어디에 있는지 알기 쉬운 것처럼 테이블에 인덱스를 삽입하면 SELECT, WHERE 시 속도를 높여서 조회 결과를 더 빨리 얻을 수 있게 해준다 반면 INSERT, UPDATE 시에 인덱스가 들어있으면 속도가 느려진다 인덱스는 테이블 내에 데이터가 엄청나게 많을 경우에 주로 사용하는데 일반적인 예제는 데이터가 몇백~몇천만을 넘어가는 테이블에 인덱스가 모두 들어가 있는 것을 확인할 수 있다 인덱스를 넣지 않으면 테이블 조회 시 엄청난 시간이 걸리는 관계로 그냥 굳어버려서 사용할 수 없기 때문이다 인덱스를 넣으면 조회 속도도 빨라지고 좋아 보이지만 다음과 같은 경우에는 별로 .. 2021. 2. 2.

반응형