stanford-oval/wikipedia huggingface dataset:
블루코트 작전
전투

구름의 밀도가 낮아 항공 지원에 영향을 미쳤고, 폭격이 어려워지면서 영국 공군은 오후까지 폭격기 지원을 중단했다. 영국 공군 폭격기 700여 대 중 절반 이상이 목표물을 보지 못해 폭탄을 투하하지 않고 회수됐다. 미국 공군은 짙은 구름 사이로 폭격을 퍼부었지만 폭격기들은 2000t에 달하는 폭탄을 정확한 지점에 투하했다. 독일군 장비의 피해는 경미했는데, 이는 목표 지역에 독일군 장비가 적었고, 제43사단과 제50사단이 출발선 바로 북쪽의 목표 지역에 주둔했기 때문이었다. "A 지역"을 통해 제11기갑사단의 좌측 측면 부대가 빠르게 전진했다. 독일군 장비의 손실은 적었는데, 이는 부분적으로 표적 지역에 장비가 거의 없었고, 43사단과 50사단이 표적 지역 북쪽, 출발선 바로 너머에 위치해 있었기 때문이다. 11기갑사단 좌익 부대는 "지역 A"를 통해 빠르게 진격했다. 많은 영국 부대가 지뢰밭, 움푹 파인 도로, 두꺼운 생울타리 및 가파른 협곡에 의해 지연되었지만, 중앙에서는 공격자들이 8km를 진격했다. 7월 31일, VIII군단의 11기갑사단은 독일군 간의 경계 약점을 이용하여 독일 전선 뒤 8km 지점에 있는 방어되지 않은 다리("디키의 다리")를 발견했다. 크롬웰 전차와 추가 지원 부대를 신속히 투입하여 독일군의 첫 기갑부대의 반격을 물리쳤다. 영국군은 8월 2일까지 비르에서 약 8km 떨어진 지점까지 진격했는데, 이는 미군 작전 구역 경계에 속했다. 특정 도로 사용 권한에 대한 혼란이 있었고, 영국군의 공격은 제한되고 남동쪽으로 우회되었다.
7군은 미국 제5군단에 의해 남쪽으로 밀려난 제3공수사단의 병력으로 마을을 증원할 수 있었고, 제9SS기갑사단의 일부를 남서쪽으로 이동시켜 7군과 서부 기갑군단 간의 격차를 메웠으며, 독일군 증원군으로 인해 영국군의 진격이 지연되었다. 제8군단은 동쪽 측면도 보호해야 했는데, 이는 제30군단이 같은 속도로 진격하지 않았기 때문이다. 제30군단의 사령관 제라드 버크널 중장은 8월 2일 해임되었고, 7기갑사단의 사령관 조지 어스킨 소장은 다음 날 해임되었다. 북아프리카 전역의 베테랑인 브라이언 호록스 중장이 8월 4일 버크널을 대신했다. 8월 4일에 제2군의 진격이 일시적으로 중단되었다. 비르는 8월 6일 미군 29사단 116보병연대가 독일 363사단을 상대로 한 야간 공격으로 함락되었다. 같은 날, 제43웨식스사단과 13/18 로열 후사르 전차 부대가 몽 팽송을 점령했다.
결과 > 분석

블루코트 작전으로 독일군 기갑 부대들은 영국군 작전 구역의 동쪽 측면에 붙잡히게 되었고 해당 지역의 독일 기갑 부대들은 계속 소모되었다. 연합군 전선 중앙의 돌파는 연합군이 노르망디 교두보 양쪽 끝에서 공격을 가할 때 독일군을 놀라게 했다. 아브랑슈(Avranches)에서 미군의 돌파가 이루어졌을 때, 독일군의 반격 작전인 뤼티히 작전을 위한 예비 병력은 거의 남아 있지 않았으며, 뤼티히 작전은 8월 12일에 실패로 끝났다. 제7군은 생존한 보병이 센강에 도달할 시간을 벌기 위해 남아 있는 모든 기갑 및 기동 부대로 후위를 엄호하면서 오른(Orne) 강 동쪽으로 신속히 철수할 수밖에 없었다. 오른 강을 넘어 철수의 첫 단계 이후, 연료 부족과 연합군의 공습, 그리고 연합군의 지속적인 압박으로 인해 독일군의 작전은 붕괴되었으며, 결국 팔레즈 포위전에서 다수의 독일군은 연합군에 포위되었다. 영국군은 제8군단에 한정해 5,114명의 피해를 입었다.
결과 > 후속 작전

8월 9일까지 모르탱에서 시작된 독일의 반격 작전인 뤼티히 작전이 패배했다는 소식이 미군 지역에서 전해지자, 리처드 오코너는 새로운 공격을 계획했다. "그라우즈 작전"이라 불린 이 작전은 근위기갑사단(Guards Armoured Division)은 페리에(Perrier) 능선을 따라 남쪽으로 진격하여, 제8군단이 비르에서 남동쪽으로 약 20km 떨어진 몽 드 세리지(Mont de Cerisi) 주변의 틴슈브레(Tinchebray)와 콩데쉬르느와로(Condé-sur-Noireau) 사이의 고지대에 자리 잡도록 하는 계획이었다. 근위기갑사단과 제6근위전차여단(6th Guards Tank Brigade)은 8월 11일에 시작할 3단계 공격을 계획했으나, 그날 아침 짙은 안개가 끼어 예비 폭격이 불가능해졌고 전차-보병 공격이 혼란에 빠졌다. 독일군의 방어 사격은 동쪽 측면의 진격을 400야드(약 370m)로 제한했다. 중앙에서는 르 오 페리에(Le Haut Perrier)의 농가에 있던 3대의 판터 전차가 발견되어 매복 공격을 받았고, 그 중 2대는 파괴되었으며 나머지 1대는 마을 남쪽 외곽에서 PIAT 사수에 의해 불이 붙었다. 영국군은 셰느돌레(Chênedollé) 북쪽의 242 고지로 진격을 계속했고, 독일군의 반격으로 인해 셔먼 전차 6대가 파괴되었으며, 독일군은 판터 전차 2대와 3호 돌격포(Sturmgeschütz III) 1대를 잃었다. 서쪽에서는 제2 아일랜드 근위대-제5 콜드스트림 전차-보병 부대가 더 빠르게 진격하여 셰느돌레 서쪽에 도달했다. 마을을 공격했을 때 수비대가 이미 철수한 것으로 확인되었고, 폭격기들이 도착하지 않아 마을을 점령한 후 추가 공격은 연기되었다가 취소되었다.
1944년 7월 30일 아침 이동 중인 제7기갑사단의 크롬웰 전차.
코브라 작전 및 블루코트 작전
생마르탱데베자스 주변 지도
붉은 나무 딸기

| 붉은 나무 딸기 Kalina krasnaya, The Red Snowball Tree |
| --- | --- |
감독: 바실리 슉쉰
출연: 리디야 페도시바-슉시나, 바실리 슉쉰, 이반 리조프
촬영: Anatoli Zabolotsky
음악: Pavel Chekalov
개봉일: 1974
시간: 101분
국가: 러시아(구 소련)
언어: 러시아어
붉은 나무 딸기(Kalina krasnaya, The Red Snowball Tree)는 러시아(구 소련)에서 제작된 바실리 슉쉰 감독의 1974년 드라마 영화이다. 리디야 페도시바-슉시나 등이 주연으로 출연하였다.
출연 > 주연

리디야 페도시바-슉시나
바실리 슉쉰
이반 리조프
브로민화 암모늄

| --- | --- |


이름
IUPAC 이름 Ammonium bromide
식별자
CAS 번호: 12124-97-9 예
3D 모델 (JSmol): Interactive image
ChEBI: CHEBI:85364 아니오
ChemSpider: 23804 예
ECHA InfoCard: 100.031.973
EC 번호: 235-183-8
PubChem CID: 25514
RTECS 번호: BO9155000liugoiugiu
UNII: R0JB3224WS 예
CompTox Dashboard (EPA): DTXSID8035681 
 InChI InChI=1S/BrH.H3N/h1H;1H3 예Key: SWLVFNYSXGMGBS-UHFFFAOYSA-N 예 InChI=1/BrH.H3N/h1H;1H3Key: SWLVFNYSXGMGBS-UHFFFAOYAP 
 SMILES [Br-].[NH4+] 
성질
화학식: NH4Br 
몰 질량: 97.94 g/mol   
겉보기: white powder, hygroscopic
밀도: 2.429 g/cm3
녹는점:  235 °C (455 °F; 508 K) 
끓는점:  452 °C (846 °F; 725 K) 
물에서의 용해도: 60.6 g/100 mL (0 °C)   78.3 g/100 mL (25 °C)   145 g/100 mL (100 °C)
자화율 (χ): −47.0·10−6 cm3/mol
굴절률 (nD): 1.712
구조
결정 구조: Isometric
위험
GHS 그림문자: 
신호어: 경고
GHS 유해위험문구: H315, H319, H335
GHS 예방조치문구: P261, P264, P271, P280, P302+352, P304+340, P305+351+338, P312, P321, P332+313, P337+313, P362, P403+233, P405, P501
NFPA 704 (파이어 다이아몬드):   0 2 0
관련 화합물
다른 음이온: Ammonium fluoride Ammonium chloride Ammonium iodide
다른 양이온: Sodium bromide Potassium bromide
달리 명시된 경우를 제외하면, 표준상태(25 °C [77 °F], 100 kPa)에서 물질의 정보가 제공됨. 아니오 확인 (관련 정보 예아니오 ?)   정보상자 각주
브로민화 암모늄(Ammonium bromide, 화학식: NH4Br)은 브로민화 수소산과 암모니아의 염이다.
제법

암모니아 + 브로민화 수소
NH3 + HBr → NH4Br
암모니아 + 브로민화 철 + 물
2NH3 + FeBr2 + H2O → 2NH4Br + FeO
유창현 (프로게이머)

| 유창현> 기본 정보 |
| --- | --- |
출생: 경상남도 창원시
국적: 대한민국
활동 정보
종목: 크레이지레이싱 카트라이더 카트라이더: 드리프트
아이디: SPEAR
유창현(2001년 4월 9일 ~)은 대한민국의 전 카트라이더 프로게이머로 아이디는 SPEAR였다.
선수 생활 > 크레이지레이싱 카트라이더

2015년 12월, The A Engineering 소속으로 활동하면서 커리어를 시작했다. 버닝 타임 팀전 4위를 기록했다.
2016년 8월, 스토머 레이싱 소속으로 활동한다. 듀얼 레이스시즌 팀전 3위, 개인전 4위를 달성했다.
2017년 1월, QsenN_White 소속으로 활동한다. 듀얼 레이스 2시즌 팀전 우승, 개인전 3위를 달성했다.
2018년 1월, PENTA XENICS 소속으로 활동한다. 듀얼 레이스 3시즌 팀전 준우승, 개인전 6위를 달성했다.
2019년 1월, SAVIORS 소속으로 활동한다. 2019-1시즌 팀전 우승, 개인전 3위를 달성했다.
2019년 7월 8일, 샌드박스 게이밍에 입단했다. 2019-2시즌 팀전 우승을 달성했다.
2020시즌을 앞두고 샌드박스 게이밍과 재계약을 체결했다. 2020-1시즌 팀전 4위, 개인전 준우승을 달성했다. 이후 휴식을 위해 팀에서 퇴단했다.
2020년 12월 9일, 한화생명 e스포츠에 입단하면서 선수로 복귀했다. 2021-1시즌 팀전 준우승, 개인전 우승을 달성했다. 2021-2시즌 팀전 준우승, 개인전 준우승을 달성했다. 2021수퍼컵 팀전 우승, 개인전 5위를 달성했다.
2022시즌을 앞두고 한화생명 e스포츠와 재계약을 체결했다. 2022-1시즌 팀전 우승, 개인전 10위를 달성했다. 2022-2시즌 팀전 3위, 개인전 3위를 달성했다. 2022수퍼컵 팀전 3위, 개인전 6위를 달성했다. 이후 팀에서 퇴단했다.
선수 생활 > 카트라이더: 드리프트

2023년 1월 7일, 광동 프릭스에 입단했다. 프리시즌1 팀전 우승, 개인전 19위를 달성했다. 프리시즌2 팀전 우승, 개인전 4위를 달성했다. 2023시즌 팀전 우승, 개인전 25위를 기록했다. 이후 팀에서 퇴단했다.
소속팀

| # | 팀명 | 소속 기간 | 소속 리그 | 비고 |
| --- | --- | --- | --- | --- |
| 1 | The A Engineering | 2015-16 | KRL |  |
| 2 | 스토머 레이싱 | 2016 | KRL |  |
| 3 | QsenN_White | 2017 | KRL |  |
| 4 | PENTA XENICS | 2018 | KRL |  |
| 5 | XENICS STORM | 2018 | KRL |  |
| 6 | SAVIORS | 2019 | KRL |  |
| 7 | 샌드박스 게이밍 | 2019.07.08. ~ 2020.05.27. | KRL |  |
| 8 | 한화생명 e스포츠 | 2020.12.09. ~ 2023.01.07. | KRL |  |
| 9 | 광동 프릭스 | 2023.01.07. ~ 2024.04.04. | KDL |  |
수상 내역 > 크레이지레이싱 카트라이더

공식 대회 우승 6회, 준우승 5회
넥슨 카트라이더 리그 듀얼 레이스 팀전 3위
넥슨 카트라이더 리그 듀얼 레이스 시즌 2 팀전 우승 (큐센 화이트)
넥슨 카트라이더 리그 듀얼 레이스 시즌 2 개인전 3위
넥슨 카트라이더 리그 듀얼 레이스 시즌 3 팀전 준우승
넥슨 카트라이더 리그 2019 시즌 1 팀전 우승 (SAVIORS)
넥슨 카트라이더 리그 2019 시즌 1 개인전 3위
2019 KT 5G 멀티뷰 카트라이더 리그 시즌 2 팀전 우승 (샌드박스 게이밍)
2020 SKT JUMP 카트라이더 리그 시즌 1 개인전 준우승
2021 신한은행 헤이영 카트라이더 리그 시즌 1 팀전 준우승
2021 신한은행 헤이영 카트라이더 리그 시즌 1 개인전 우승
2021 신한은행 헤이영 카트라이더 리그 시즌 2 팀전 준우승
2021 신한은행 헤이영 카트라이더 리그 시즌 2 개인전 준우승
2021 신한은행 헤이영 카트라이더 리그 수퍼컵 팀전 우승 (블레이즈)
2021 신한은행 헤이영 카트라이더 리그 수퍼컵 팀전 최우수 선수
2022 신한은행 헤이영 카트라이더 리그 시즌 1 팀전 우승 (블레이즈)
2022 신한은행 헤이영 카트라이더 리그 시즌 2 팀전 3위
2022 신한은행 헤이영 카트라이더 리그 시즌 2 개인전 3위
2022 신한은행 쏠 카트라이더 리그 수퍼컵 팀전 3위
수상 내역 > 카트라이더: 드리프트

공식 대회 우승 1회
카트라이더: 드리프트 리그 프리시즌 1 팀전 우승
카트라이더: 드리프트 리그 프리시즌 2 팀전 우승
2023 카트라이더: 드리프트 리그 팀전 우승
이백초등학교

| 이백초등학교 二白初等學校 Eback Elementary School |
| --- | --- |

교훈: 질서를 알고 실천하는 어린이 기본이 충실한 어린이 꿈을 가꾸는 어린이
개교: 1933년 4월 1일
설립형태: 공립
교장: 박광원
교감: 최용순
국가:  대한민국
위치: 전북특별자치도 남원시 이백면 평촌길 30 (평촌리 107)
학생 수: 36명 (2014년 4월 1일)
교직원 수: 18명 (2014년 4월 1일)
상징: 장미(교화), 소나무(교목)
관할관청: 남원교육지원청
웹사이트: 이백초등학교
ko
이백초등학교는 대한민국 전북특별자치도 남원시 이백면 평촌리에 있는 공립 초등학교이다.
학교 연혁

1933년 4월 1일 이백공립보통학교 설립인가
1938년 4월 1일 이백공립심상소학교 개명
1941년 4월 1일 이백공립국민학교 개명
1982년 3월 3일 병설유치원 개원
1996년 3월 1일 이백초등학교 개칭
2000년 3월 1일 남평초등학교 통합
2017년 2월 9일 이백 새솔관(다목적 체육관) 개관
2019년 3월 1일 제31대 이경희 교장 부임
2021년 1월 13일 제84회 졸업(졸업생 14명, 총 3,355명)
이 목록은 아직 미완성입니다. 여러분이 하여 채워 주세요.
학교 동문

분류:이백초등학교 동문  문서를 참고하십시오.
학교 상징

교화 - 철쭉 : 산에서 자라는 낙엽 떨기나무이다. 줄기는 높이 2-5m로 잎은 가지 끝에 4-5장씩 어긋나게 모여나며 잎자루는 짧다. 우리나라 전역에 자생하고, 꽃은 4-6월에 잎과 동시에 피며 가지 끝에 3-7개씩 산형으로 달린다. 연분홍색 또는 드물게 흰색의 꽃을 피운다.
교목 - 소나무 : 소나뭇과의 늘푸른큰키나무로 껍질은 검붉은 비늘꼴이고, 잎은 바늘꼴로 두 잎이 모여 난다. 5월에 꽃이 피며, 열매는 솔방울이라 하는데 9-11월에 익는다. 나무는 건축재·침목·가구재·땔감 등으로 쓰고 송진은 약용·공업용으로 쓰인다.
참고 자료

이백초등학교 - 한국교육학술정보원 학교알리미
SJ AB

| --- | --- |

창립: 2001년 1월 1일 
산업 분야: 철도운송 
본사 소재지: 스웨덴 
모기업: Swedish Government Offices 
SJ AB는 스웨덴의 국유 철도 회사이다. 2001년 스웨덴 국유 철도가 분사되면서 생겼으며, 스웨덴의 고속 철도, 인터시티 열차 및 일부 지역의 통근 열차를 운행한다.
역사

분사 이전의 SJ AB는 스웨덴 국유 철도를 그 전신으로 한다. 1856년 12월 스웨덴에 국유 철도 노선이 개통되면서 스웨덴 국유 철도가 설립되었다. 당시 국유 철도에서 보유하고 있었던 노선은 쇠드라 스탐바난 및 베스트라 스탐바난으로 스웨덴의 2대 간선 철도였다. 국유 철도 구간이 확장되고 소형 사철 회사들을 인수하면서 스웨덴 국유 철도가 계속 성장하였다. 1900년대 초반까지만 해도 스웨덴에는 다양한 사철이 존재하였다. 스웨덴 국유 철도의 첫 100년간 역사는 두 부분으로 나눌 수 있다. 1800년대 후반부터 스웨덴에 국유 간선 철도 노선이 개통되면서 스웨덴 철도 교통의 큰 축을 담당하게 되었다. 1940년대부터 중소형 사철 회사들을 인수하면서 주 간선과 연결되는 노선도 국유 철도에서 담당하게 되었다. 국유화가 진행된 주된 이유는 파산으로 인한 폐선으로부터 철도 노선을 보호하고, 도로 교통의 발달로 인하여 사철로 영업하기에는 이익이 나지 않았기 때문이다. 국유화가 진행되는 동안 과거에 사용되었던 증기 기관차를 대체하기 위하여 Y6 디젤 동차가 널리 보급되었다. 1950년대에 스웨덴 철도는 5만명을 고용하여 당시 스웨덴에서 가장 큰 회사 중 하나가 되었고, 이 시기에 회사 규모도 역사상 최대를 기록하였다. 1960년대부터는 이익이 나지 않는 노선의 운행 중단이 시작되었다.
1963년 스웨덴 국회에서 모든 운송 수단이 스스로 이익을 낼 수 있어야 한다고 결정하였다. 국회에서 이 결정이 내려진 이후 여러 적자 노선이 폐선되고 버스 운송으로 대체되었다. 스웨덴 국유 철도는 버스 대체 운송 노선에 운송 사업자로 진출하여 스웨덴의 최대 버스 회사가 되었다. 폐선 및 폐역의 한 예로, 스톡홀름에서 말뫼로 이어지는 쇠드라 스탐바난에는 1958년 당시 90개의 역이 있었다. 20년 후 원래 역의 약 1/5 정도인 20개 역만이 여객 영업을 하였다. 1980년대에 지방 자치가 시행되면서 주 내부 철도 운행은 각 주에서 책임을 지게 되었다. 각 주는 스웨덴 국유 철도 및 타 철도 사업자에 보조금을 지급하여 주내 철도 교통을 운영하였고, 이는 스웨덴 국유 철도의 수입원 중 하나였다.
1980년대 후반 철도의 환경적 장점과 유가 인상으로 인하여 철도 교통이 재조명되었다. 이 시기에 철도 승객 수송량이 증가하였고 새로운 객차가 도입되었다. 1986년 X 2000 열차를 개발하기 시작하였고, 영업 운행에 투입되었을 때에는 스웨덴 국유 철도의 주요 수입원이 되었다. 2001년 스웨덴 국유 철도가 공기업화되면서 SJ AB를 비롯한 여러 회사가 설립되었다. 나뉘었던 모든 기업은 공기업화 당시에는 전부 국영 기업이었으나 이 중 SJ AB, 그린 카고(화물 영업), 예른후센(부동산 관리)을 제외한 회사만 민영화되었다. 철도 노선의 건설 및 관리는 공기업으로 분사되지 않고 또 다른 정부 기관인 반베르케트로 이관되었다.
현재

2001년 이후 철도 교통의 시장 분담은 지속적으로 증가하였다. 시장 분담률 증가의 원인 분석은 환경 문제, 노선 개선 및 증속 등이 있다. 공기업화 이후 SJ는 인수 당시의 노선 중 지방 노선을 폐선하거나 다른 사업자에게 이관하였다. 현재의 SJ AB는 간선 고속 열차 및 지역간 열차에 초점을 맞추고 있다. SJ의 전통적인 수익원은 스웨덴 3대 간선 및 스톡홀름발 장거리 열차였으나, 2009년 철도 사업 독점이 깨진 이후에는 다른 사업자들도 이론적으로는 진입할 수 있게 되었다. SJ는 지역 열차의 운영권을 받아서 여러 지역에서 운영하고 있었으나, 타 국가 사업자가 저가격을 무기로 진출하면서 지역 노선을 많이 잃었다.
국내 노선

SJ에서 운영하는 서비스 이름은 SJ Snabbtåg (SJ 2000 및 SJ 3000), SJ InterCity, SJ Regional 및 SJ Nattåg가 있다.
국내 노선 > 고속 열차

SJ 2000 문서에 이 부분의 추가 정보가 있습니다.
SJ 2000은 SJ에서 운영하는 고속 열차의 브랜드 이름이다. SJ 2000은 스웨덴의 유일한 간선 고속 철도로 취급되며 최대 시속 200km까지 운행할 수 있다 (다른 전동차 역시 이 속도를 낼 수 있으나 SJ 2000에 포함되지는 않는다). 별도의 고속 선로를 설치한 간선 노선이 없기 때문에 국제적인 기준에서 보았을 때에는 낮은 속도이다.
1980년대에 스웨덴에서는 선로 고속화 작업을 시작하였고, 그 과정에서 탐구한 해외 사례는 프랑스였다. 1980년대 프랑스의 TGV는 시속 200km대 후반을 기록하고 있었고, 별도의 고속 선로를 사용하였다. 스웨덴의 국내 사정상 별도 선로를 설치하는 것은 낭비라고 생각되었기 때문에 별도의 고속 선로를 설치하는 대신 틸팅 기술을 도입하였다. 1989년에 첫 열차가 반입되었고 1990년 영업 운행을 시작하였다.
도입 당시에는 비즈니스 및 장거리 통근객을 위한 차량으로 설계되었다. 속도 증속 이외에도 기존 객차에 없었던 냉난방이 도입되었다. X 2000 열차의 절반은 X2000 클래스로 분류되었고, 비즈니스 여행객을 위한 무선 전화, 식사 무료 제공 등이 있었다. 나머지는 이코노미 클래스로 분류되어 음식물을 운반하는 트롤리가 운행하였고, 시트 피치도 기존 객차의 104cm에서 90cm로 더 좁아졌다. 이후 등급 명칭은 1등석과 2등석이 되었다.
SJ 2000 열차의 첫 운행 구간은 스톡홀름-예테보리였으며 스톡홀름-말뫼, 스톡홀름-외스테르순드 등으로 연장되었다. 주 운행 구간은 스웨덴의 2대 간선인 스톡홀름-예테보리/말뫼-(코펜하겐)이다. SJ 2000 열차가 제 속도를 내려면 곡률 반경이 크거나 일직선으로 노선이 구성되어야 하며, 구불구불한 노선에서 운행하였을 때에는 시간 단축 효과가 크지 않았기 때문에 스톡홀름-달라르나, 에스킬스투나, 예테보리-말뫼 등 노선에는 다른 열차가 투입되었고, 다른 노선을 운행하였던 차량은 2대 간선의 늘어난 수요를 맞추기 위해서 그 쪽으로 이동하였다. 2000년대 중반에 좌석 및 외관을 개수하였다.
국내 노선 > 인터시티 열차

스웨덴에서 인터시티 열차의 정의는 두 종점 사이가 100km 이상인 열차를 이야기한다. 1980년대 초반에 스웨덴에 처음으로 도입되었으며, 도입 당시에는 스톡홀름-말뫼/예테보리 사이를 중간 정차역 수를 줄여서 정차하는 열차였다. 일부 인터시티 열차는 스톡홀름-달라르나를 운행하였다. 1980년대에 새로 제작되었거나, 1960년대에 제작된 객차 중 개수된 객차 위주로 투입되었다. 차내에는 식당차, 면세점, 놀이방 등이 있었다.
X 2000이 도입되고 일반화된 1990년대 이후에는 인터시티 열차가 일반 여객열차의 자리를 대신 차지하였다. 인터시티 열차의 요구 조건은 점점 낮아졌고, 투입되는 객차 역시 오래된 객차가 증가하였다. 식당차 및 면세점은 더 이상 필수로 운행하지 않아도 되었다. 중간 정차역이나 평균 속도에는 큰 변화가 없었다.
1990년대에는 독일의 InterRegio 모델을 도입하여 인터시티 및 지역 열차를 혼합한 열차를 운행하기 시작하였다. 개수된 객차 위주로 편성되었고 식당차가 같이 운행하였다. 대부분 열차는 멜라르달렌 및 서부 스웨덴 지역으로 운행하였다. 운행 결과 InterRegio 모델은 스웨덴에서 어울리지 않는다고 판단하였고, 사용되었던 객차는 일반 인터시티 영업용으로 재사용되었다.
국내 노선 > 지역 열차

SJ 2000 및 인터시티 열차보다 더 짧은 거리를 운행하고 더 자주 서는 열차를 통칭한다. 법적 정의는 두 종점 사이가 50~100km인 열차를 이야기한다. SJ의 지역 열차는 운행 거리가 100km 이상이었기 때문에, 일부 인터시티 열차가 특정 지역 내에서는 지역 열차와 같은 속도로 운행하도록 하였다. (예: 예테보리-외레브로-스톡홀름) 인터시티 열차에 편성되는 식당차도 같이 연결되었다.
현재의 SJ는 지역 열차 시장에서 많은 운영권을 잃었거나 포기하였다. 남아 있는 지역 열차의 대부분은 멜라르달렌 호 주변 및 예블레-스톡홀름-린셰핑, 스톡홀름-에스킬스투나, 스톡홀름-베스테로스/할스베리 등이다. 이 구간에는 X40 2층 열차가 투입된다. 지역 열차의 특성 상 정차가 잦으므로 가감속력 및 최고 속도가 높은 전동차가 투입된다. 스웨덴 내의 많은 지역 열차는 보조금 및 입찰을 통하여 운행된다.
국내 노선 > 야간 열차

야간 열차는 예테보리-두베드, 말뫼-두베드(동계 운행), 스톡홀름-두테드/스톨리엔, 말뫼-스톡홀름, 예테보리/스톡홀름-룰레오/나르비크 구간에서 운영된다. 북부 노를란드 지방으로 운행하는 예테보리/스톡홀름-룰레오/나르비크 구간의 야간 열차는 2007년 SJ AB가 입찰을 통하여 운영권을 얻었으며, 2008년부터 5년간 유효하였다. 일부 야간 열차 영업에는 베올리아가 진출하였다.
야간 열차에는 2등석 객차, 침대차, 식당차가 편성되며 Rc 기관차를 사용한다.
국제 노선

현재 운행하는 국제 노선은 덴마크 및 노르웨이 방면이다.
국제 노선 > 노르웨이

스톡홀름-나르비크 간 야간 열차 및 베름란드 선 경유 스톡홀름-오슬로 간 열차를 운행한다. 노르웨이행 열차는 인터시티로 운행하나 구간 수요가 대부분을 차지한다. 오슬로행 열차는 코펜하겐행 열차보다 더 적게 운행되며 SJ 2000은 노르웨이로 운행하지 않는다.
국제 노선 > 덴마크

스톡홀름-코펜하겐 간 SJ 2000 열차가 매일 왕복 5편성, 예테보리-코펜하겐 간 인터시티 열차가 매일 왕복 6편성 운행한다. 말뫼-스톡홀름 간은 SJ 2000 및 야간 열차가 운행한다. 2011년 2월 1일 SJ에서는 코펜하겐에 첫 사무소를 개설하였다. 2012년 4월 10일 예테보리-코펜하겐 간 운행하였던 X 2000 열차를 재정상 이유로 인터시티로 전환하였다.
국제 노선 > 과거 국제선 열차

2010년 10월 10일부터 2011년 10월 2일까지 SJ는 덴마크 오덴세까지 SJ 2000 열차를 운행하였다. 오전에 1편성의 열차가 오덴세발 스톡홀름행으로, 오후에는 스톡홀름발 오덴세행으로 운행하였다. SJ는 덴마크 내 다른 도시 및 독일까지 차량을 운행하려고 하였으나, 무기한 운행을 중단하였다.
2000년대 초반에는 스웨덴, 노르웨이, 덴마크가 합작으로 스칸디나비아의 세 수도를 잇는 고속 열차 Linx를 운행하였다. 본사는 예테보리에 있었으며, 스톡홀름-카를스타드-오슬로 및 오슬로-예테보리-말뫼-코펜하겐 간을 운행하였다. 인터시티 및 X 2000 열차를 운행하였다. 오슬로-예테보리-코펜하겐 간은 고속 운행에 대한 준비가 되어 있지 않아서 인터시티로 운행하였다. 2004~2005년 수익성 악화를 이유로 중단되었다. 대부분 구간은 이후 SJ가 운행하였고 오슬로-예테보리는 NSB, 예테보리-코펜하겐 간은 외레순토그에서 운행한다.
SJ에서는 말뫼-베를린 간 야간 열차 베를린 나이트 익스프레스(독일 내에서는 스칸디나비아 나이트 익스프레스)를 운행하였고, 트렐레보리-자스니츠 간 페리를 사용하였다. 여름에는 매일 운행하고 평상시에는 매주 3회 운행하였다. 스웨덴-독일 합작으로 운영하였다. SJ 소유 침대차를 사용하였고 독일 내 시간표에서는 유로나이트 열차로 표시되었다. 2011년 11월 5일 영업을 중단하였고 2012년 봄 베올리아에서 운행을 재개하였다.
차량

기관차: Rc3, Rc6
전동차: X2, X50, X52, X55, X40, X12, X31
객차: 1980년대 객차
같이 보기

스웨덴 국유 철도
트라피크베르케트
빌더 패턴

빌더 패턴이란 복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴이다. 2 단어 요약 : 생성자 오버로딩
예 > 자바

/** "Product" */
class Pizza {
	private String dough = "";
	private String sauce = "";
	private String topping = "";

	public void setDough(String dough) {
		this.dough = dough;
	}

	public void setSauce(String sauce) {
		this.sauce = sauce;
	}

	public void setTopping(String topping) {
		this.topping = topping;
	}
}

/** "Abstract Builder" */
abstract class PizzaBuilder {
	protected Pizza pizza;

	public Pizza getPizza() {
		return pizza;
	}

	public void createNewPizzaProduct() {
		pizza = new Pizza();
	}

	public abstract void buildDough();

	public abstract void buildSauce();

	public abstract void buildTopping();
}

/** "ConcreteBuilder" */
class HawaiianPizzaBuilder extends PizzaBuilder {
	public void buildDough() {
		pizza.setDough("cross");
	}

	public void buildSauce() {
		pizza.setSauce("mild");
	}

	public void buildTopping() {
		pizza.setTopping("ham+pineapple");
	}
}

/** "ConcreteBuilder" */
class SpicyPizzaBuilder extends PizzaBuilder {
	public void buildDough() {
		pizza.setDough("pan baked");
	}

	public void buildSauce() {
		pizza.setSauce("hot");
	}

	public void buildTopping() {
		pizza.setTopping("pepperoni+salami");
	}
}

/** "Director" */
class Cook {
	private PizzaBuilder pizzaBuilder;

	public void setPizzaBuilder(PizzaBuilder pizzaBuilder) {
		this.pizzaBuilder = pizzaBuilder;
	}

	public Pizza getPizza() {
		return pizzaBuilder.getPizza();
	}

	public void constructPizza() {
		pizzaBuilder.createNewPizzaProduct();
		pizzaBuilder.buildDough();
		pizzaBuilder.buildSauce();
		pizzaBuilder.buildTopping();
	}
}

/** A given type of pizza being constructed. */
public class BuilderExample {
	public static void main(String[] args) {
		Cook cook = new Cook();
		PizzaBuilder hawaiianPizzaBuilder = new HawaiianPizzaBuilder();
		PizzaBuilder spicyPizzaBuilder = new SpicyPizzaBuilder();

		cook.setPizzaBuilder(hawaiianPizzaBuilder);
		cook.constructPizza();

		Pizza pizza = cook.getPizza();
	}
}
예 > C#

//Implementation in C#.
class Pizza
{
    string dough;
    string sauce;
    string topping;
    public Pizza() {}
    public void SetDough( string d){ dough = d;}
    public void SetSauce( string s){ sauce = s;}
    public void SetTopping( string t){ topping = t;}
}

//Abstract Builder
abstract class PizzaBuilder
{
    protected Pizza pizza;
    public PizzaBuilder(){}
    public Pizza GetPizza(){ return pizza; }
    public void CreateNewPizza() { pizza = new Pizza(); }

    public abstract void BuildDough();
    public abstract void BuildSauce();
    public abstract void BuildTopping();
}

//Concrete Builder
class HawaiianPizzaBuilder : PizzaBuilder
{
    public override void BuildDough()   { pizza.SetDough("cross"); }
    public override void BuildSauce()   { pizza.SetSauce("mild"); }
    public override void BuildTopping() { pizza.SetTopping("ham+pineapple"); }
}

//Concrete Builder
class SpicyPizzaBuilder : PizzaBuilder
{
    public override void BuildDough()   { pizza.SetDough("pan baked"); }
    public override void BuildSauce()   { pizza.SetSauce("hot"); }
    public override void BuildTopping() { pizza.SetTopping("pepparoni+salami"); }
}

/** "Director" */
class Waiter {
    private PizzaBuilder pizzaBuilder;

    public void SetPizzaBuilder (PizzaBuilder pb) { pizzaBuilder = pb; }
    public Pizza GetPizza() { return pizzaBuilder.GetPizza(); }

    public void ConstructPizza() {
        pizzaBuilder.CreateNewPizza();
        pizzaBuilder.BuildDough();
        pizzaBuilder.BuildSauce();
        pizzaBuilder.BuildTopping();
    }
}

/** A customer ordering a pizza. */
class BuilderExample
{
    public static void Main(string[] args) {
        Waiter waiter = new Waiter();
        PizzaBuilder hawaiianPizzaBuilder = new HawaiianPizzaBuilder();
        PizzaBuilder spicyPizzaBuilder = new SpicyPizzaBuilder();

        waiter.SetPizzaBuilder ( hawaiianPizzaBuilder );
        waiter.ConstructPizza();

        Pizza pizza = waiter.GetPizza();
    }
}
예 > C++

// Implementation in C++.

#include <iostream>
#include <memory>
#include <string>

// Product
class Pizza
{
private:
    std::string dough;
    std::string sauce;
    std::string topping;

public:
    Pizza() { }
    ~Pizza() { }

    void SetDough(const std::string& d) { dough = d; };
    void SetSauce(const std::string& s) { sauce = s; };
    void SetTopping(const std::string& t) { topping = t; }

    void ShowPizza()
    {
        std::cout << " Yummy !!!" << std::endl
        << "Pizza with Dough as " << dough
        << ", Sauce as " << sauce
        << " and Topping as " << topping
        << " !!! " << std::endl;
    }
};

// Abstract Builder
class PizzaBuilder
{
protected:
    std::auto_ptr<Pizza> pizza;
public:
    PizzaBuilder() {}
    virtual ~PizzaBuilder() {}
    std::auto_ptr<Pizza> GetPizza() { return pizza; }

    void createNewPizzaProduct() { pizza.reset (new Pizza); }

    virtual void buildDough()=0;
    virtual void buildSauce()=0;
    virtual void buildTopping()=0;
};

// ConcreteBuilder
class HawaiianPizzaBuilder : public PizzaBuilder
{
public:
    HawaiianPizzaBuilder() : PizzaBuilder() {}
    ~HawaiianPizzaBuilder(){}

    void buildDough() { pizza->SetDough("cross"); }
    void buildSauce() { pizza->SetSauce("mild"); }
    void buildTopping() { pizza->SetTopping("ham and pineapple"); }
};

// ConcreteBuilder
class SpicyPizzaBuilder : public PizzaBuilder
{
public:
    SpicyPizzaBuilder() : PizzaBuilder() {}
    ~SpicyPizzaBuilder() {}

    void buildDough() { pizza->SetDough("pan baked"); }
    void buildSauce() { pizza->SetSauce("hot"); }
    void buildTopping() { pizza->SetTopping("pepperoni and salami"); }
};

// Director
class Waiter
{
private:
    PizzaBuilder* pizzaBuilder;
public:
    Waiter() : pizzaBuilder(NULL) {}
    ~Waiter() { }

    void SetPizzaBuilder(PizzaBuilder* b) { pizzaBuilder = b; }
    std::auto_ptr<Pizza> GetPizza() { return pizzaBuilder->GetPizza(); }
    void ConstructPizza()
    {
        pizzaBuilder->createNewPizzaProduct();
        pizzaBuilder->buildDough();
        pizzaBuilder->buildSauce();
        pizzaBuilder->buildTopping();
    }
};

// A customer ordering a pizza.
int main()
{
    Waiter waiter;

    HawaiianPizzaBuilder hawaiianPizzaBuilder;
    waiter.SetPizzaBuilder (&hawaiianPizzaBuilder);
    waiter.ConstructPizza();
    std::auto_ptr<Pizza> pizza = waiter.GetPizza();
    pizza->ShowPizza();

    SpicyPizzaBuilder spicyPizzaBuilder;
    waiter.SetPizzaBuilder(&spicyPizzaBuilder);
    waiter.ConstructPizza();
    pizza = waiter.GetPizza();
    pizza->ShowPizza();

    return EXIT_SUCCESS;
}
예 > 비주얼 프롤로그

Product
interface pizza
   predicates
      setDough : (string Dough).
      setSauce : (string Sauce).
      setTopping : (string Topping).
end interface pizza
class pizza : pizza
end class pizza
implement pizza
   facts
      dough : string := "".
      sauce : string := "".
      topping : string := "".
   clauses
      setDough(Dough) :- dough := Dough.
   clauses
      setSauce(Sauce) :- sauce := Sauce.
   clauses
      setTopping(Topping) :- topping := Topping.
end implement pizza
Abstract Builder
interface pizzaBuilder
   predicates
      getPizza : () -> pizza Pizza.
      createNewPizzaProduct : ().
   predicates
      buildDough : ().
      buildSauce : ().
      buildTopping : ().
end interface pizzaBuilder
Visual Prolog does not support abstract classes, but we can create a support class instead:
interface pizzaBuilderSupport
   predicates from pizzaBuilder
      getPizza, createNewPizzaProduct
end interface pizzaBuilderSupport
class pizzaBuilderSupport : pizzaBuilderSupport
end class pizzaBuilderSupport
implement pizzaBuilderSupport
   facts
      pizza : pizza := erroneous.
   clauses
      getPizza() = pizza.
   clauses
      createNewPizzaProduct() :- pizza := pizza::new().
end implement pizzaBuilderSupport
ConcreteBuilder #1
class hawaiianPizzaBuilder :  pizzaBuilder
end class hawaiianPizzaBuilder
implement hawaiianPizzaBuilder
   inherits pizzaBuilderSupport
clauses
      buildDough() :- getPizza():setDough("cross").
   clauses
      buildSauce() :- getPizza():setSauce("mild").
   clauses
      buildTopping() :- getPizza():setTopping("ham+pineapple").
end implement hawaiianPizzaBuilder
ConcreteBuilder #2
class spicyPizzaBuilder :  pizzaBuilder
end class spicyPizzaBuilder
implement spicyPizzaBuilder
   inherits pizzaBuilderSupport
clauses
      buildDough() :- getPizza():setDough("pan baked").
   clauses
      buildSauce() :- getPizza():setSauce("hot").
   clauses
      buildTopping() :- getPizza():setTopping("pepperoni+salami").
end implement spicyPizzaBuilder
Director
interface waiter
   predicates
      setPizzaBuilder : (pizzaBuilder PizzaBuilder).
      getPizza : () -> pizza Pizza.
   predicates
      constructPizza : ().
end interface waiter
class waiter : waiter
end class waiter
implement waiter
   facts
      pizzaBuilder : pizzaBuilder := erroneous.
   clauses
      setPizzaBuilder(PizzaBuilder) :- pizzaBuilder := PizzaBuilder.
   clauses
      getPizza() = pizzaBuilder:getPizza().
   clauses
      constructPizza() :- 
         pizzaBuilder:createNewPizzaProduct(),
         pizzaBuilder:buildDough(),
         pizzaBuilder:buildSauce(),
         pizzaBuilder:buildTopping().
end implement waiter
A customer ordering a pizza.
goal
   Hawaiian_pizzabuilder = hawaiianPizzaBuilder::new(),
   Waiter = waiter::new(),
   Waiter:setPizzaBuilder(Hawaiian_pizzabuilder),
   Waiter:constructPizza(),
   Pizza = Waiter:getPizza().