///////
Search
🦁

권소연

별찍기

정사각형

n을 받으면 n*n 사이즈 사각형 출력
for문 이용
public void printSquare(int n){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ System.out.print("*"); } System.out.println(); } }
Java
복사
repeat을 이용하는 방법
public void printSquare2(int n){ for(int i=0;i<n;i++){ System.out.println("*".repeat(n)); } }
Java
복사

직사각형

x, y를 받으면 x*y 사이즈의 사각형 출력하기
for문 이용
public void printRectangle(int x, int y){ for(int i=0;i<x;i++){ for(int j=0;j<y;j++){ System.out.print("*"); } System.out.println(); } }
Java
복사
repeat 이용
public void printRectangle2(int x, int y){ for(int i=0;i<x;i++){ System.out.println("*".repeat(y)); } }
Java
복사

[도전] 재귀로 별찍기

재귀란? Recursive 자기 자신을 호출하는 함수 재시작 + 귀한 → 나를 반복한다

Java와 DB 연동

Insert, Select [1017내용+]

Insert
//environment 변수 설정 후 -> 1017 add()에서 파라미터로 User 받도록 public void add(User user) { Map<String, String> env = System.getenv(); try { Connection c = DriverManager.getConnection(env.get("DB_HOST"), env.get("DB_USER"), env.get("DB_PASSWORD")); PreparedStatement pstmt = c.prepareStatement("INSERT INTO users(id, name, password) VALUES (?, ?, ?);"); pstmt.setString(1, user.getId()); pstmt.setString(2, user.getName()); pstmt.setString(3, user.getPassword()); pstmt.executeUpdate(); //Query문 실행 pstmt.close(); c.close(); } catch (SQLException e) { throw new RuntimeException(e); } } //main에서: userDao.add(new User("7","Ruru","1234qwer"));
Java
복사
Select
domain User
//Select쿼리를 이용하여 User를 리턴 public User findByInd(String id) { Map<String, String> env = System.getenv(); try { Connection c = DriverManager.getConnection(env.get("DB_HOST"), env.get("DB_USER"), env.get("DB_PASSWORD")); PreparedStatement pstmt = c.prepareStatement("SELECT * FROM users WHERE id = ?"); pstmt.setString(1, id); ResultSet rs = pstmt.executeQuery(); //Query문 실행 rs.next(); User user = new User(rs.getString("id"), rs.getString("name"), rs.getString("password")); rs.close(); pstmt.close(); c.close(); return user; } catch (SQLException e) { throw new RuntimeException(e); } }
Java
복사

addAndSelect() 테스트 만들기

Create Test
//JUnit에서 Edit Configurations - 환경변수 설정해주어야 실행 가능 package com.line.dao; import com.line.domain.User; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; class UserDaoTest { @Test void addAndSelect() { UserDao userDao = new UserDao(); User user = new User("8","EternityHwan","1123"); userDao.add(user); User selectedUser = userDao.findByInd("8"); Assertions.assertEquals("EternityHwan",selectedUser.getName()); } }
Java
복사
→ 매우 좋지 않은 코드이다. 초난감 DAO 코드
리팩토링 1. method로 분리 2. Class로 분리 3. Interface를 적용

makeConnection() 분리

connection 불러오는 공통된 부분을 메소드로
private Connection makeConnection() throws SQLException { Map<String, String> env = System.getenv(); Connection c = DriverManager.getConnection( env.get("DB_HOST"), env.get("DB_USER"), env.get("DB_PASSWORD") ); return c; }
Java
복사
접근제어자는 private로, Return type을 Connection으로

Abstract Class로 분리

UserDaoAbstract
양쪽 DB에서 모두 실행하고 싶다? Test할 때 LocalDB, 실제사용은 AWS DB에서
Implement Class
UserDaoTest

Class로 분리

AwsConnectionMaker 생성
UserDao 수정
UserDaoTest 확인
다시 UserDao와 특정 Class가 강하게 결합됨.

Interface로 분리

ConntectionMaker 인터페이스
implement class
UserDao 수정

JavaScript [Tech!t]

사용 방법

</body>태그 위에 <script>작성
document.write(); 브라우저 화면에 쓰기
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>사용방법</title> </head> <body> <h1>자바스크립트</h1> <script> document.write('안녕'); </script> </body> </html>
JavaScript
복사
javascript 파일에 작성
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>JavaScript 사용 방법</title> </head> <body> <h1>JavaScript 사용 방법</h1> <script src='myScript.js'>코딩 짱짱</script> </body> </html>
JavaScript
복사
*세미콜론을 쓰지 않아도 된다!

자료형

변수선언 var
데이터타입 확인하기: typeof

로또 번호 추첨기

자조서 글자수 계산기

미니 스타크래프트

기념일 계산기