목록
'전체 글' 747건
코드로 놀고, 언어로 성장하는 공방.
-
스레드 동기화(Thread Synchronization)스레드 동기화의 필요성멀티스레드는 다수의 작업을 동시에 실행시키는 응용프로그램 작성 기법입니다. 하지만, 멀티 스레드를 사용할 때 주의를 기울려야 합니다. 다수의 스레드가 공유 자원 혹은 공유 데이터에 접근할 때 예상치 못한 결과를 낳을 수 있습니다. 공유 프린터에 즉시 접근하는 경우공유 프린터에 대한 멀티 스레드의 동시 접근을 순차화하여 섞여 출력되는 문제를 해결하였습니다. 공유 집계판에 동시 접근하는 경우 멀티스레드 프로그램을 작성할 때 주의할 점을 다수의 스레드가 공유 데이터에 동시 접근하는 경우에 대한 처리입니다. 이에 대한 헤결책이 바로 스레드 동기화(Thread Synchronization)입니다. 스레드 동기화란 공유 데이터에 접근하고자 하는 다수의 스레드가 서로 순서대로 충돌 없이 공유 데..
-
시퀄라이즈 사용하기시퀄라이즈는 MySQL 작업을 쉽게 할 수 있도록 도와주는 라이브러리입니다. 시퀄라이즈는 ORM(Object-relational Mapping)으로 분류됩니다. ORM은 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구입니다. 시퀄라이즈를 단지 MySQL과 같이 써야만 하는 것은 아닙니다. MariaDB, PostgreSQL, SQLite, MSSQL 등 다른 데이터베이스도 같이 쓸 수 있습니다. 문법이 어느 정도 호환되므로 프로젝트를 다른 SQL 데이터베이스로 전환할 때도 편리합니다. 시퀄라이즈를 쓰는 이유는 자바스크립트 구문을 알아서 SQL로 바꿔주기 때문입니다. 따라서 SQL 언어를 직접 사용하지 않고도 자바스크립트만으로 MySQL을 조작할 수 있으며, SQL을 몰라도 MySQL을 어느 ..
-
encodeURL() 사용법1. 다음과 같이 실습 파일을 준비합니다. 2. SessionTest5 클래스를 다음과 같이 작성합니다. 다시 /login으로 요청해 jsessionId를 URL rewriting 방식으로 가져온 후 세션에 접근하여 로그인 상태 유무를 판단하도록 구현합니다.package sec04.ex01;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import jakarta...
-
스레드 종료스레드의 종료는 스스로 종료하는 경우와 다른 스레드에 의해 강제 종료되는 경우가 있습니다. 종료된 스레드를 다시 살릴 수도 없습니다. 스스로 종료스레드는 다음 예와 같이 run() 메서드가 실행 도중 리턴하거나 run()을 완전히 실행하고 리턴하면 종료됩니다.public void run() { ................ return; // 스레드는 스스로 종료한다. ................} 강제 종료그러면 한 스레드가 다른 스레드를 강제로 종료시킬 수 있을까? 종료시키고자 하는 스레드의 interrupt() 메서드를 호출하면 됩니다.main() 스레드는 TimerThread 스레드를 생성한 뒤, 강제로 종료시키기 위해 TimerThread의 interrupt()를 호출합니다. 이 결과 Time..
-
CRUD 작업하기CRUD는 Create, Read, Update, Delete의 첫 글자를 모은 두문자이며 데이터베이스에서 많이 수행하는 데 네 가지 작업을 일컫습니다. 그 방법만 익혀도 웬만한 프로그램은 다 만들 수 있을 정 도로 CRUD 작업은 많이 사용됩니다. SQL문 위주로 진행하지만, SQL에 익숙하지 않다면 워크벤치로 진행해도 됩니다. Create(생성)Create(생성)는 데이터를 생성해서 데이터에 넣는 작업입니다.mysql> use nodejs;Database changedmysql> INSERT INTO nodejs.users (name, age, married, comment) VALUES ('zero', 24, 0, '자기소개1');Query OK, 1 row affected (0.09 sec)m..
-
세션을 이용한 로그인 정보 바인딩 실습1. 실습하기 전에 해야할 일이 있습니다. 톰캣이 종료된 후에도 세션이 메모리에서 삭제되지 않는 경우가 있으므로 톰캣 설정 파일인 context.xml을 열어 태그의 주석을 해제해야 합니다. 2. 다음과 같이 실습 파일을 준비합니다. 3. 로그인창에서 ID와 비밀번호를 입력한 후 서블릿으로 전송할 수 있도록 login2.html 파일을 작성합니다. 아이디 : 비밀번호: 4. SessionTest4 클래스를 다음과 같이 작성합니다. 로그인창에서 로그인할 경우 ID와 비밀번호를 가져오고, 최초 요청 시 세션에 setAttribute() 메서드를 이용해 user_id로 사용자 ID를 바인딩하도록 구현합니다. 태그를 이용해 재요청하고 세션의 getSttribute() 메서드를 이용하여 us..