Programming 썸네일형 리스트형 웹팩 등장 배경에 대한 이해 이 글은 아래 Radin님의 글을 요약하였습니다. https://velog.io/@radin/webpack-1 velog velog.io ------------------------------------------------------------------------------------------------------ # Webpack에 대한 이해 1. 전역 스코프 공유 문제 자바스크립트는 script 태그로 외부 스크립트 파일을 가져올 수 있지만 파일마다 독립적인 스코프를 갖지 않는다. 분리된 파일을 합쳐 하나의 객체로 만든다. 그렇기 때문에 동일한 함수명이나 변수명을 사용하면 충돌하므로 스코프와 의존성 관리 문제를 해결할 수 없어 모듈화 구현이 어려웠다. 2. IIFE를 활용한 스코프 분리 정의 즉.. 더보기 DynamoDBMapper Java // DynamoDBMapper // 객체 선언 @Autowired private DynamoDBMapper dynamoDBMapper; // 검색 조건으로 사용할 Attribute의 Value 지정 HashMap eav = new HashMap(); eav.put(":author", new AttributeValue().withS(author)); // Scan 방식. DB 전체를 조회하므로 속도 느림. Query 방식 권장 DynamoDBScanExpression scanExp = new DynamoDBScanExpression() .withFilterExpression("author = :v1") .withExpressionAttributeValues(eav); // Scan 할 Page 계산 in.. 더보기 SQL? NoSQL? NO! 1. SQL의 문제점 RDB에서 데이터를 계층적으로 분리하여 저장한다면 여러 개의 테이블로 구성하여 참조키(=외래키)와 조인연산(JOIN), 중첩쿼리(Nested)가 조합된 복합쿼리로 조회가 가능하다. 그런데 이 복합 쿼리라는 게 테이블 구조가 간단 할 때는 그러려니 하지만, 셋 이상의 테이블이 관계되어 구성되면 쿼리가 심각하게 복잡해진다. 이 때 부터는 사실상 데이터 조회를 위해 쿼리를 '설계'해야 하는 지경에 이르게 되는데 아무리 쿼리를 잘 설계를 해도 가독성 뿐만 아니라 성능까지 염려스러운 상황이 되어 버린다. DB를 잘 다루는 사람들은 아마 이 상황을 잘 통제하는 사람을 두고 하는 말일 것이다. 2. NoSQL의 필요성 그럼 NoSQL은 왜 나타났을까 곰곰이 생각해보면, 다른 배경도 분명 있긴 하.. 더보기 Dynamo DB 특징 및 단점 * ChatGPT 발췌 특징 1. 완전 관리형 서비스 - AWS의 완전 관리형 서비스 - DB 인프라 설정, 운영, 관리를 AWS가 담당 - DB 관리에 대한 걱정 없이 애플리케이션 개발에 집중할 수 있음 2. 분산형 아키텍처 - 분산형 아키텍처 기반으로 확장성 제공 - 데이터가 여러 물리적 서버에 분산 저장 - 높은 처리량, 낮은 시간 보장 3. 고성능 - 높은 처리량과 낮은 응답 시간 제공에 중점을 두고 설계 - 읽기 및 쓰기 처리량을 쉽게 확장할 수 있음 - 요청 최대량 10GB 데이터 처리 4. 유연한 데이터 모델 - 스키마리스 데이터 모델 사용하여 데이터 모델 유연하게 변경 - 필요에 따라 속성 추가 제거 가능 하며 각 항목이 고유한 구조 가짐 5. 원자성 트랜잭션 - 트랜잭션 처리 지원 - 여.. 더보기 격세지감 크로스플랫폼 지금은 안드로이드를 하지 않지만 다른 UI 프레임워크를 다루다 보면 가끔 안드로이드가 그리울 때가 있었는데, 오랜만에 플러터를 끄적이며 안드로이드의 친숙함을 느낄 수 있었다. 고작해야 튜토리얼 정도만 했지만, 플러터는 확실히 안드로이드와 자바 스타일이 풀풀 풍긴다. 다르트 언어에서 지원하는 예약어도 그렇고, 화면의 레이아웃을 구성하는 방식도 안드로이드와 그것도 참 비슷하다. 비벼먹을 괄호의 웅장함(!)까지도 똑같다. 딱 기존의 스타일을 고수한 안드로이드의 상위 버전이라고 총평을 할 수 있을 것 같다. 어쨌든 크로스플랫폼이라길래 써본 플러터의 첫 인상은 썩 나쁘진 않다. 나의 경우에는 안드로이드의 경우, 4.0(아이스크림 샌드위치)부터 8.0(오레오)까지 개발을 했었다. 그러면서 Ionic(자동차 말고!).. 더보기 MySQL SQL Password Length 오류 SQL 오류 (1819): Your password does not satisfy the current policy requirements 뭔 개떡같은 오류가 다 있네. 왜 나냐니, password length가 기본 설정되어 있어서 나는거지.. ㅡㅡ 쿼리에서 SELECT에 아래와 같이 password 내장함수를 이용해서 검색하려면, password(CQQ.article_password) AS article_password, 디비 설정값 영향 받으니 아래처럼 설정 수정해야 한다 ㅡㅡ... SET GLOBAL validate_password_policy=LOW; SET GLOBAL validate_password_length = 6; 뭔 이런거 까지 다 수정해야 되냐...? 내가 개발한 기능은 완벽했다구!.. 더보기 깨끗한 코드!!! 깨끗한 코드를 원해!!! 성능은 중요하다. 하지만 내 정신 건강을 보존하고 프로그래밍을 오랫동안 즐겁게 하기 위해서는 무조건 코드는 깨끗하게 짜야 한다!! 마감기간이 어쩌고 저쩌고 변명따윈 하지 말기!! 마감기간 때문에 뭣같이 소스코드 짜면, 나중에는 일을 더 많이 해야 된다. 그게 결국 기술부채가 되어 자신과 조직의 효율성을 극도로 떨어뜨리는 요인으로 작용한다. 그러니까 소스코드는 무조건 깨끗하게 짤 것!! 디자인 패턴이나 객체 지향적 설계를 반드시 넣으라는 말이 아니다. 명확한 네이밍으로 함수와 변수의 의미를 분명하게 나타내고, 목적을 알 수 있도록 쉽게 코드를 작성하고, 이게 어려우면 적어도 주석이라도 몇 자 적어놔라!! 이게 전부다. 그리고서 내가 하고 싶은 프로그램 만들면 된다!! 더보기 MYSQL 코드 메모 계정 생성 + 비밀번호 + 외부 접속 허용 CREAT USER '[user_id]'@'%' identified by '[user_password]' 비밀번호 변경 UPDATE user SET password = password('[user_password]') WHERE user = '[user_root]'; 외부 접속 허용 GRANT ALL PRIVILEGES ON [databse_name].* to '[user_id]'@'%' identified by '[user_password]'; 변경 사항 반영 FLUSH PRIVILEGES; 더보기 이전 1 2 3 4 ··· 15 다음