전체 글139 Move의 특징 Move는 페이스북의 리브라 화폐 프로젝트를 위해서 개발된 스마트컨트랙트 프로그래밍 언어입니다.Rust에서 영감을 받아서 설계된 부분이 많고, 특히 메모리 안전성, 자원관리, 소유권 개념 등에서 유사한 점이 많습니다. Move는 특히 블록체인 상에서 디지털 자산의 안전한 이동과 소유권 관리에 특화된 언어로, 스마트 컨트랙트를 작성하기 위해서 처음부터 설계되었습니다. 이로 인해서, Move는 Rust 보다도 더 엄격한 자원관리 시스템과 보안성을 제공합니다. 1. 자원 Resource 타입과 소유권 관리Move는 자산을 자원타입(resource type)으로 선언하고, 이 자원은 복사할 수 없으며 단 하나의 소유자만 가질 수 있습니다. 이것은 블록체인에서 자산의 중복과 무단 사용을 방지하기 위한 특화된 기능.. 2024. 10. 27. 왜 리액트 배포하고 새로고침하면 404에러가 뜰까? 리액트는 SPA입니당. 우리는 이것저것 클릭하면 주소가 /something , /something/1 뭐 이런식으로 바뀌는걸 보지만 사실은 그냥 하나의 index.html파일에 js로 동적으로 브라우저가 휘리릭 바꿔주고 있을 뿐이에요. 사실 우리는 계속 같은 놈을 보고 있습니더..바로 루트에 있는 index.html 파일이요. 그리고 브라우저가 페이지에 들어가는 것은 해당 url에 index.html 파일을 내놔라! 하는 GET 요청을 보내는 것이에요. 그런데 말이죵 그럼 리액트로 빌드한 웹페이지에서 ~~~~~/testPage 에 들어가 있다고 쳐봅시당. 근데 새로고침했어요.그럼 우리는 어떤 url한테 index.html을 내놓으라고 GET 요청을 보내는 걸까요? 바로 ~~~~/testPage에요.근.. 2024. 10. 11. 코드 스플리팅 SPA 싱글 페이지 어플리케이션의 단점은 처음 페이지 로드 시 당장 보지 않을 요소들까지 전부 로드한다는 것이다.그렇기 때문에 처음 로드 이후에 작동이 하나의 어플리케이션처럼 부드럽게 작동하기 때문에 이 점은 이점으로 작용할 수 있지만,페이지 안에 너무 많은 요소들이 있을 경우에는 이를 한번에 로드하는 것을 막아야 한다. React.lazy로 감싼 컴포넌트는 단독으로 쓰일 수 없고, React.suspense 컴포넌트의 하위에서 렌더링 되어야 한다. 1. Route level- 라우트마다 다른 컴포넌트로 관리를 하고 있을 경우에, 각 라우트를 import 함수를 통해 분리된 빌드 파일로 관리할 수 있다.- 유저가 다른 페이지로 넘어갈 때만 그 페이지를 비동기적으로 로딩할 수 있다.- 초기 렌더링 시간.. 2024. 10. 10. 아이폰에서의 100vh는 뷰포트의 높이가 아니다?! 웹앱을 개발해서 테스트 배포를 했다. 근데 응?! 푸터가 안보이는 것이다. 보통 처음에 프레임만 잡고 그 안의 것들을 컴포넌트화해서 나눠서 개발한다. 그런데 맨 상위 프레임에 나는 분명히 100vw와 100vh 를 주었기 때문에 모든 요소가 화면에 보여야 하는데 푸터가 안보이는 것이다! 무엇이 원인인지 가설을 세우면서 고민해보았다. 1. 다른 요소에 가려졌다. 2. 100vh가 내가 아는 100vh가 설마 아닌가 ( 아니었으면 좋겠다 ) 1은 충분히 그럴 수 있다. 왜냐하면 푸터를 fixed로 뷰포트 기준 맨 하단에 잡아놨었는데, 이것이 메인 화면의 zindex에 밀려서 가려졌을 수도 있다. 는 무슨.. 그럴 수 없다... 난 메인 화면에 zindex를 주지도 않았고, 여기에 출처 불명의 라이브.. 2024. 10. 8. Batching Batch "일괄"Batching "일괄처리" "Batching is when React groups multiple state updates into a single re-render for better performance."배칭은 더 나은 성능을 위해서 리액트가 여러개의 상태를 한번의 리렌더링에 업데이트 하는 것을 이야기 한다.- Dan Abramov React Developer - 단기간에 일어나는 상태변화를 매번 렌더링하지 않고, 일괄 처리한다.- 리액트 이벤트 단위로 배칭이 발생한다. - 배칭은 리액트의 상태 값을 일정한 주기로 처리하는 작업. 이벤트로 인해 변경되는 점이 하나든 여러개든 일정한 주기에 맞춰서 다 같이 처리될 수 있도록하는 리액트의 내부기능. 상태값 변경 > 변경된 상태값을 .. 2024. 10. 4. @import vs link CSS 적용 방법- 인라인- 내부 스타일링- 외부 스타일링- @import- link 1. 문서에 default.css 적용하는 방법 2. default.css 파일 내에 header.css를 @import @charset "utf-8";@import "header.css"; /* 문자 형식 */@import url("header.css"); /* url 형식 */ link가 더 효율적이다.@import는 직렬로딩link는 병렬로딩 출처: CSS 적용을 위한 또 다른 방법, @import :: About Web (tistory.com) 2024. 9. 23. .htaccess 사용법 1. 권한 설정 및 접근 제어- .htaccess 파일을 사용하여 특정 디렉토리나 파일에 대한 접근을 제한한다.- 이를 통해서 보안을 강화할 수 있다. 예시 : 특정 ip만 접근 허용# 모든 사용자에게 접근을 차단하고 특정 ip만 허용한다.Order Deny, AllowDeny from allAllow from 123.456.789.000ㄴ 모든 ip 주소의 접근을 차단하고, 지정된 ip 주소 (123....) 만 해당 디렉토리에 접근할 수 있도록 설정한다.ㄴ 이를 통해서 특정 관리자나 팀만 특정 리소스에 접근할 수 있게 할 수 있다. 예시 : 기본 인증 설정# 이 디렉토리에 접근하기 전에 사용자 인증을 요구AuthType BasicAuthName "Restricted Area"AuthUserFil.. 2024. 9. 19. .htaccess 파일 .htaccess ( hypertext access ) - .htaccess 파일은 아파치와 같은 웹 서버에서 특정 디렉토리에 대해 설정을 적용하는 파일이다.- 이 파일을 사용하면 해당 디렉토리와 하위 디렉토리에 대해 서버 설정을 제어할 수 있다. - 예를 들어, 디렉토리에 대한 접근 권한을 설정하거나, URL을 재작성 REWRITE 하는 등의 작업을 수행할 수 있다.- 앞의 점.은 .숨김파일을 나타낸다. .htaccess 파일의 역할과 기능1. 권한 설정 및 접근제어- .htaccess 파일을 통해 특정 디렉토리나 파일에 접근할 수 있는 권한을 설정할 수 있다.- 이를 통해서 보안 설정을 강화하거나, 특정 사용자만 해당 디렉토리에 접근할 수 있도록 제한할 수 있다. 2. URL 재작성 - .hta.. 2024. 9. 19. php 호스팅 후에 404 처리 feat chatgpt php로 개발해보니까 편했던 점이 몇가지 있었다. 1. 페이지 간에 종속성이 없어지니까, 고려해야할 점이 많이 줄었다.더불어서 PHP는 stateless 하다. 요청 단위로 다 날려버리니까 이것 역시 개발할 때 고려해야하는 사항들을 많이 줄여준다. 2. 순수 html, css, 기본적인 UI 라이브러리 ( BULMA 같은..? ), JS를 쓰다보니까 뭔가 이것도 개발할 때 고려해야할 사항이 적어진다. 3. 데이터베이스 연결이 너무 편했다.타 프레임워크였으면, 데이터베이스 연결 시에 거쳐야하는 수많은 보일러플레이트 코드들을 여기서는 할 필요가 없었다. 4. 알려진 것과 다르게 은근히 보안적인 요소들이 들어가 있음태그들을 빼주는 pdo 메서드나pdo 데이터 페칭 플로우 자체가 XHR 공격과 같은 요소들을 고.. 2024. 9. 19. 트랜잭션 관리 트랜잭션 관리데이터베이스에서 여러개의 SQL 작업을 하나의 작업으로 묶어서 관리하는 기능이다. 이 때 트랜잭션은 원자성 atom 뭐시기, 일관성 consistency 뭐시기, 고립성 independent 뭐시기, 지속성 durability 뭐시기 의 특성을 가져야 하고 이를 ACID 특성이라고 부른다. MySQL에서 트랜잭션을 제어하는데 사용하는 주요 명령어로는 START TRANSACTION, COMMIT, ROLLBACK 이 있다. START TRANSACTION- 트랜잭션을 시작한다.- 이후 실행되는 쿼리들이 하나의 트랜잭션으로 묶여서 관리된다. COMMIT- 트랜잭션이 성공적으로 완료되었을 때, 데이터베이스에 영구적으로 반영한다.- COMMIT을 호출하기 전까지는 데이터가 실제로 저장되지 않는다... 2024. 9. 19. 이전 1 ··· 6 7 8 9 10 11 12 ··· 14 다음