| 구분 | 경로 | 설명 |
|---|---|---|
| 🧩 자바 파일 | src → main → java → [홈페이지명] | MVC 패키지 구성 (Controller, Service, Repository 등) |
| 📄 JSP 파일 | src → main → webapp | JSP 패키지 구성 |
| ⚙️ 기타 파일 | src → main → resources | - static : css, js, img- sql : 샘플 SQL- application.properties : Spring 설정 파일 |
AppStart, Controller, Service, Dto, Repository 등 필수 구성요소 세팅
| 클래스명 | 역할 |
|---|---|
| SuperRepository | DB 연결 등 공통 코드 구현 후, 일반 Repository에서 상속 |
| Dto | Lombok 활용 / DB 테이블과 일치하는 구조로 작성 |
| 계층 | 역할 |
|---|---|
| Dao | DB 통신 |
| Service | 비즈니스 로직 구현 |
| Controller | 세션 관리 및 매핑 |
| 테스트 | JS 연결 전 Talend API 활용 |
네트워크에서 데이터를 주고받기 위한 규약 / 규칙
| 프로토콜 | 의미 | 설명 / 비고 |
|---|---|---|
| 🧭 IP | Internet Protocol | 네트워크 상의 컴퓨터 식별 번호 |
| 🔢 Port | Port Number | 컴퓨터 내 프로그램 식별 번호 주요 포트: 3306(MySQL), 8080(Tomcat), 21(FTP), 53(DNS) 포트 확인: netstat -ano |
| 🌍 DNS | Domain Name Service | IP를 사람이 이해할 수 있는 문자로 변환 IP 찾기: nslookup 도메인주소 |
| 📄 HTTP | HyperText Transfer Protocol | HTML/XML 문서 통신 규약 |
| 🔒 HTTPS | HTTP + Secure | SSL 보안이 적용된 HTTP |
| 📧 SMTP | Simple Mail Transfer Protocol | 메일 전송 규약 (문자 서비스는 유료) |
| 📁 FTP | File Transfer Protocol | 파일 전송 규약 |
| 🛡️ SSL | Secure Sockets Layer | 암호화 보안 기술 |
| 항목 | 설명 |
|---|---|
| 💾 저장 위치 | Tomcat 서버 메모리 |
| 🎯 목적 | 데이터 관리, 인증 및 권한 관리 |
| 💡 사용 예시 | 로그인 상태, 비회원 장바구니, 사용자 설정값, 웹게임 등 |
| 🧍 특징 | 브라우저(크롬, 엣지 등)마다 별도의 세션 객체 할당 |
HttpServletRequest request;
request.getRemoteAddr(); // 클라이언트 IP 정보
request.getRemotePort(); // 클라이언트 Port 정보
request.getHeader("User-Agent"); // 브라우저 정보
HttpSession session = request.getSession();
session.getId(); // 세션 식별번호
session.getCreationTime(); // 생성 시간 (ms)
session.getLastAccessedTime(); // 마지막 접근 시간 (ms)
session.getMaxInactiveInterval(); // 유효시간 (s)
| 동작 | 코드 | 설명 |
|---|---|---|
| 속성 추가 | session.setAttribute("key", value); | 세션에 데이터 저장 |
| 속성 가져오기 | session.getAttribute("key"); | Object 타입으로 반환 |
| 어노테이션 | 기능 |
|---|---|
@Data | @Getter + @Setter + @ToString 등 포함 |
💡 스프링 빈 주입 예시
private final SampleService sampleService;
@Autowired
public MemberController(SampleService sampleService){
this.sampleService = sampleService;
}
type(속성명)과 data(속성값)를 받아 DB에서 중복 여부 검사type은 SQL ?로 처리 불가 → 문자열 결합으로 직접 삽입public boolean check(String type, String data){
try {
String SQL = "select * from member where " + type + " = ? ";
PreparedStatement ps = conn.prepareStatement(SQL);
ps.setString(1, data);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
// 중복이면 true
return true;
}
} catch (SQLException e) {
System.out.println(e);
}
// 중복이 아니면 false
return false;
}