리액트에서 event.curretTarget.value의 값이 undefined가 되는 현상

리액트 16 이전 버전에서 발생합니다. 문제 상황 event.currentTarget.value가 undefined로 나오는 현상 발생. 이유 SyntheticEvent의 Pooling과 setState에 전달된 콜백 실행 시점의 차이 때문에 발생하는 문제였습니다. React의 SyntheticEvent는 이벤트 핸들러가 종료된 직후에 pool로 반환되어, event가 모두 null로 초기화됩니다. 그런데 setState의 함수형 업데이트(콜백)나 비동기 코드(setTimeout, Promise등)는 이벤트 핸들러 실행 이후에 동작합니다. 따라서 setState 콜백에서 event를 참조하면, 이미 event […]

집적 회로의 용어와 발전 단계를 알아보자

집적 회로란? 직접 회로(IC, Integrated Circuit)란 여러 개의 전자 부품(트랜지스터, 저항, 커패시터 등)을 하나의 칩에 집적한 것이다. 1960년대 초반에 등장하였고, 몇 개에서 수십 개의 트랜지스터를 포함한다. 간단한 논리 게이트나 작은 증폭기 회로 등이 직접 회로에 속한다. 집적 회로의 종류와 발전 단계 SSI (Small Scale Integration) 1960년대 초반에 등장한 소규모 집적 회로이다. 수십 개 이하의 트랜지스터를 […]

[자바] 4. 조건문과 반복문

1. if 문 지금까지의 코드는 실행 흐름이 위에서 아래로 한 문장 씩 순차적으로 진행되었지만 조건에따라 문장은 건너띄고 때로는 같은 문장을 반복해서 수행해야 할 때가 있다. 이처럼 프로그램의 흐름을 바꾸는 역할을 하는 문장들을 ‘제어문’이라고 한다. 제어문에는 조건문과 반복문이 있는데 조건문은 조건에 따라 다른 문장이 수행되도록 해야하고 2.조건식의 다양한 예 3. 블럭{} 4. if-else문 5. if-else if문 […]

애자일 알아보기

애자일 방식이 도입된 이유와 용어 정리 Ⅰ. 서론 현재 많은 IT기업에서 도입하여 사용하고 있는 애자일 방식을 알아보고자 한다. 기존 IT기업들이 어떤 문제점에 봉착하여 애자일 방식을 도입하게 되었는지, 애자일에 사용되는 용어는 어떤 것이 있는지 알아본다. Ⅱ. 본론 1. 기존 방식의 문제점과 애자일이 도입된 이유 전통적 개발 방식인 폭포수 모델은 빠르게 변화하는 시장 환경에 대응하지 못하였다. 폭포수 […]

[Java]String은 왜 불변인가?

1. 불변 객체(Immutable Object) 자바 면접 단골 질문 중 하나인 String은 불변객체인가? 라는 질문이 있습니다. 저 역시 면접 보기전 많이 본 질문 중 하나이고 검색을 해봤지만, 대충 암기만 하고 넘겼던 기억이 나는군요.. 실제로 자바, 스프링을 쓸때도 String이 많이 나오기때문에 이번 기회에 공부해보려고 이 글을 작성했습니다! 불변객체 불변 객체(Immutable Object)는 객체의 상태가 한 번 설정되면 변경할 […]

[AWS] RDS PostgreSQL와 스프링 부트 3 게시판 연동

지난 포스팅에서 배포한 스프링 부트 3 게시판의 경우 DB를 H2 DB로 구축한 후 그것을 .jar 파일로 빌드해서 배포했다. 그러나 H2 데이터베이스는 웹 프로그램이나 서비스 개발 단계에서는 유용하지만 실제 운영 환경에서 사용하기에는 많이 부족한 DBMS다. 따라서 웹 프로그램, 서비스를 본격적으로 운영하기로 마음먹었다면 H2보다 성능이 좋은 DBMS를 고려해야한다. 오라클과 같은 상용 DBMS도 있지만 규모가 작은 웹 서비스는 […]

[AWS] 배포한 스프링 부트 3 게시판 HTTPS 전환

https://www.nuschool.co.kr/study/aws%ec%97%90-%ec%8a%a4%ed%94%84%eb%a7%81-%eb%b6%80%ed%8a%b8-3-%ea%b2%8c%ec%8b%9c%ed%8c%90-%eb%b0%b0%ed%8f%ac%ed%95%98%ea%b8%b0/ 지난 포스팅에서 AWS에 스프링 부트 3 게시판을 배포해보았다. 그런데 지금 이 상태에서는, EC2 인스턴스의 IP를 입력하고 거기에 :8080을 입력해야 접속할 수 있는 불완전한 형태다. 일반적인 웹 사이트는 HTTP/HTTPS로 접속한다. 보통 정상적인 웹 사이트는 HTTPS로 접속을 한다. HTTP/HTTPS에 대한 개념은 아래를 참고하자 https://www.cloudflare.com/ko-kr/learning/ssl/why-is-http-not-secure HTTPS(80 포트)로 웹 서비스 운영하기 80번 포트로 엔진엑스(Nginx)나 아파치(Apache)와 같은 웹 서버를 […]

[AWS] 스프링 부트 3 게시판 배포하기

클라우드 서비스인 AWS 스프링 부트로 코딩된 게시판을 배포해볼 것이다. DB는 H2 DB를 사용하였다. AWS 프리티어로 사용할 계정은 이미 존재한다고 가정한다. 스프링 부트 : 3.3.4 version DB : H2 VM : AWS EC2 OS : Ubuntu 22.04 AWS EC2 인스턴스 생성 AWS의 EC2 가상머신 인스턴스를 생성해주자. EC2는 프리티어에서 사용할 수 있는 OS버전과 가상머신 사양으로 진행할 것이다. […]